An implementation of "Generic Storage in Haskell".
To run the demo:
$ runhaskell -isrc demo.hs
Or, when using cabal-dev:
$ cabal-dev install-deps $ runhaskell -package-conf=cabal-dev/packages-7.4.1.conf -isrc demo.hs
The output (at the time of writing) should be something like
Rendering tree
("in",Leaf)
("in",Leaf)
("in",Leaf)
("in",Leaf)
("in",Branch "c" 3 () ())
("in",Branch "b" 2 () ())
("in",Branch "a" 1 () ())
Looking up a node
("out",Branch "a" 1 () ())
("out",Leaf)
("out",Branch "b" 2 () ())
("out",Leaf)
("out",Branch "c" 3 () ())
("out",Leaf)
("out",Leaf)
Result: Just 1