You claimed that monad transformers break the mzero-is-right-identity-for-bind law because they can be applied to IO. I say, it's not the monad transformers fault. They cannot possibly be expected to repair the law if they are given a faulty monad.
Doesn't that argue for allowing proven and unproven Monads in Haskell?
Using the Curry-Howard correspondance, wouldn't it make sense to provide (proof) terms in a Monad's signature that are witnesses for the monad laws?
One could then have signature-only Monads (ie a rather weak requirement) and signature+laws Monads (much stronger).
Jacques _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe