IO-based reification, as implemented by 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. It is a key piece of technolgy used in many reification and sythesis libraries.
IO-based Reification Papers
A. Gill, “Type-safe observable sharing in Haskell,” in Proceedings of the Second ACM SIGPLAN Haskell Symposium, Haskell ’09, (New York, NY, USA), pp. 117–128, ACM, Sep 2009.