-- returns if a list contains only even numbers
evenslist :: [Nat] -> Bool
evenslist []  = True
evenslist [Z] = True
evenslist [S Z] = False
evenslist [S(S Z)] = True
evenslist [S(S(S Z))] = False
evenslist [Z, Z] = True
evenslist [Z, S Z] = False
evenslist [Z, S(S Z)] = True
evenslist [Z, S(S(S Z))] = False
evenslist [S Z, Z] = False
evenslist [S Z, S Z] = False
evenslist [S Z, S(S Z)] = False
evenslist [S Z, S(S(S Z))] = False
evenslist [S(S Z), Z] = True
evenslist [S(S Z), S Z] = False
evenslist [S(S Z), S(S Z)] = True
evenslist [S(S Z), S(S(S Z))] = False
evenslist [S(S(S Z)), Z] = False
evenslist [S(S(S Z)), S Z] = False
evenslist [S(S(S Z)), S(S Z)] = False
evenslist [S(S(S Z)), S(S(S Z))] = False

