
20 May
2010
20 May
'10
5 p.m.
On 20 May 2010 13:10, Miguel Mitrofanov
That won't be a great idea; if I just want my monad to be declared as one, I would have to write
instance Functor MyMonad where fmap = ... instance Pointed MyMonad where pure = ... instance Applicative MyMonad where (<*>) = ... instance Monad MyMonad where join = ...
There are also some Monads where a Functor instance wouldn't add anything useful, Andy Gill's Dot monad is one (Text.Dot), Oleg Kiselyov's RenderMonad in the CSXML library is another.