data Nat = O | S Nat // It is important for this test that even and or are not annotated even O = True even (S x) = odd x odd O = False odd (S x) = even x main = even (S (S (S (S (S O))))) -- false