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.



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.


  author = {Andy Gill},
  title = {Type-Safe Observable Sharing in {H}askell},
  booktitle = {Proceedings of the Second {ACM} {SIGPLAN} {H}askell Symposium},
  year = {2009},
  month = {Sep},
  series = {Haskell '09},
  isbn = {978-1-60558-508-6},
  location = {Edinburgh, Scotland},
  pages = {117--128},
  doi = {10.1145/1596638.1596653},
  acmid = {1596653},
  publisher = {ACM},
  address = {New York, NY, USA},
  keywords = {DSL compilation, observable sharing},