Functional pearl: Trouble shared is trouble halved Richard Bird and Ralf Hinze. In Johan Jeuring, editor, Proceedings of the ACM SIGPLAN 2003 Haskell Workshop, Uppsala, Sweden, August 28, 2003, pp 1-6. Manufacturing datatypes Ralf Hinze. In Chris Okasaki, editor, Proceedings of the Workshop on Algorithmic Aspects of Advanced Programming Languages, WAAAPL'99, Paris, France, September 1999, pp. 1-16