[Haskell-cafe] the trivial monad- thoughts and a question
Luke Palmer
lrpalmer at gmail.com
Sat Jan 12 19:39:55 EST 2008
On Jan 13, 2008 12:47 AM, Brian Hurt <bhurt at spnz.org> wrote:
> So, I've been playing around with what I call the trivial monad:
>
> module TrivialMonad where
>
> data TrivialMonad a = M a
Better to use newtype here; then it really is operationally equivalent
to using just "a", except that it's possible to implement a monad
instance for it (see below).
> The first question I have is it is possible to implement this guy without
> wrapping the value in a constructor? What I'd like to do is replace the:
> data TrivialMonad a = M a
> with something like:
> type TrivialMonad a = a
> and then be able to junk the recover function.
Nope. That would mean that every type is a monad, which would cause endless
troubles for type inference. For example, what monad is (putStrLn "x") a
member of: IO () or TrivialMonad (IO ()) (or even TrivialMonad
(TrivialMonad (IO())))?
> The second question I have is: is there any hope of getting something like
> this into the standard library?
Control.Monad.Identity, perhaps?
http://www.haskell.org/ghc/docs/latest/html/libraries/mtl/Control-Monad-Identity.html
Luke
More information about the Haskell-Cafe
mailing list