Can you do this with a GHC rule? Something like:

{-# RULES
      "join_dot_fmap_return/id"  forall x . join (fmap return x) = x
#-}

Dan

Henning Thielemann wrote:
On Tue, 5 Feb 2008, Brandon S. Allbery KF8NH wrote:

On Feb 5, 2008, at 8:31 , Henning Thielemann wrote:

How do you convince the compiler that
  'join (fmap return x) == x' ?
How do you convince it that the current formulation of Monad obeys
the monad laws?  (rhetorical)

My point was that the constraint 'liftM == fmap' cannot be expressed in
Haskell 98, and the answer by Miguel suggested that it would be possible
by a different design of class Monad. The above was my objection to this
suggestion.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to