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, ser. Haskell ’09. New York, NY, USA: ACM, Sep 2009, pp. 117–128.