On Dec 31, 2011 8:19 AM, "Yves Parès" <limestrael+haskell@gmail.com> wrote:
> -- The plain Maybe type
> data Maybe a = Just a | Nothing
>
> -- The MaybeMonad
> newtype MaybeMonad a = MM ( () -> Maybe a )
>
> That's what using Maybe as a monad semantically means, doesn't it?

I'd have to say no.  That Maybe types are isomorphic to functions from () is not related to their being monads... indeed it's true of all types.  I'm not sure what meaning you see in the function, but I don't see anything of monads in it.