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