module Pair () where {-@ LIQUID "--no-termination" @-} import Language.Haskell.Liquid.Prelude incr z = (x, [x + 1]) where x = choose z chk (x, [y]) = liquidAssertB (x < y) prop = chk $ incr n where n = choose 0 incr2 pig = (True, 9, pig, 'o', pig + 1) chk2 (_, _, cow, _, dog) = liquidAssertB (cow < dog) prop2 = chk2 $ incr2 mouse where mouse = choose 0 incr3 x = (x, ( (0, x+1))) chk3 (x, ((_, y))) = liquidAssertB (x < y) prop3 = chk3 (incr3 n) where n = choose 0