+<!--
+This module is inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://www.cse.ogi.edu/~mpj/) Advanced School of Functional Programming, 1995.
+http://web.cecs.pdx.edu/~mpj/pubs/springschool.html
+Mark Jones' influential paper that inspired the Haskell monad template library.
+-->
+
+