max expr size = 4 |- on ineqs = 3 |- on conds = 3 max #-tests = 500 min #-tests = 25 (to consider p ==> q true) max #-vars = 2 (for inequational and conditional laws) _ :: Int _ :: [Int] _ :: Int -> [Int] return :: Int -> [Int] (>>=) :: [Int] -> (Int -> [Int]) -> [Int] (>=>) :: (Int -> [Int]) -> (Int -> [Int]) -> Int -> [Int] (xs >>= return) == xs f x == (return x >>= f) (f x >>= g) == (f >=> g) x (f >=> return) == f (return >=> f) == f