Data Reify

data-reify provided the ability to turn recursive structures into explicit graphs. Many (implicitly or explicitly) recursive data structure can be given this ability, via a type class instance. See the Haskell Symposium paper (below) for more details.

Downloading

The best place to get data-reify from is hackage.

	http://hackage.haskell.org/cgi-bin/hackage-scripts/package/data-reify
or
	cabal install data-reify
The latest version is data-reify-0.4

data-reify Related Publications

Here is a publication describing the design and use cases of data-reify

Andy Gill, Type-Safe Observable Sharing in Haskell, Proceedings of the 2009 ACM SIGPLAN Haskell Symposium, Sep 2009. Details, pdf, Webpage, BibTeX
Haskell is a great language for writing and supporting embedded Domain Specific Languages (DSLs). Some form of observable sharing is often a critical capability for allowing so-called deep DSLs to be compiled and processed. In this paper, we describe and explore uses of an IO function for reification which allows direct observation of sharing.