andthen b1 b2 = if b1 then b2 else False
z = let x = 2
y = 4
in (x /= 0) `andthen` (y/x > 1)
z1 = let x = 0
y = 4
in (x /= 0) `andthen` (y/x > 1)
andthen' b1 b2 = if (b1 undefined) then (b2 undefined) else False
z2 = let x = 2
y = 4
in (\z -> (x /= 0)) `andthen'` (\z -> (y/x > 1))
z3 = let x = 0
y = 4
in (\z -> (x /= 0)) `andthen'` (\z -> (y/x > 1))