[Haskell-cafe] Are constructors strict?

Jan Christiansen jac at informatik.uni-kiel.de
Wed Jan 26 21:33:13 CET 2011


On 22.01.2011, at 08:12, Sebastian Fischer wrote:

> Also, Jan, I don't understand your comment about continuation  
> monads. Maybe I am a bit numb today.. What property do you mean do  
> continuation monads have or not?

I was wrong there. If there exist values x and y with x /= y and you  
have a function f such that f x /= f y then we have f _|_ = _|_ (at  
least if f is a sequential function). I thought this property might  
fail if x and y are functions but I was totally wrong.

Therefore the laws

   mzero >>= f = mzero


   return x >>= f = f x

together with

   mzero /= mplus m n


   mzero /= mplus (m >>= f) (n >>= f)

for some m and n implies that we have _|_ >>= f = _|_ if >>= is  

Cheers, Jan

More information about the Haskell-Cafe mailing list