The reify package

This is a library for reifying Haskell data structures in GHC.
Haskell values are mapped into representations that we call
graphs (for want of a better name). The representations are
encoded in the Haskell type Graph, which is just an ordinary
algebraic data type. This will not reify functions.