David Roundy <[EMAIL PROTECTED]> wrote in article <[EMAIL PROTECTED]> in gmane.comp.lang.haskell.cafe: > class WitnessMonad wm where > (>>=) :: wm w w' a -> (a -> wm w' w'' b) -> wm w w'' b > (>>) :: wm w w' a -> wm w' w'' b -> wm w w'' b > return :: a -> wm w w' a > fail :: String -> wm w w' a
I suspect that you want "w" and "w'" to be the same type in the types of "return" and "fail". Previous work: Atkey, Robert. 2006. Parameterised notions of computation. In MSFP 2006: Workshop on mathematically structured functional programming, ed. Conor McBride and Tarmo Uustalu. Electronic Workshops in Computing, British Computer Society. http://homepages.inf.ed.ac.uk/ratkey/param-notions.pdf http://haskell.org/pipermail/haskell-cafe/2004-July/006448.html -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig FORTH is a program that interfaces keyboards with computer. Charles H.Moore, Geoffrey C. Leach, 1970. http://www.ultratechnology.com/4th_1970.html _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe