Name: Anonymous 2011-12-19 8:54
Modelling monads with a typeclass is stupid. There isn't one true monad for a given type. It makes no sense that when you use bind with lists you automatically get concatmap.
data D a = A [a] | B [a] | C [a]
instance Monad D where
A xs >>= f = ...
B xs >>= f = ...
C xs >>= f = ...
...