--- /dev/null
+\r
+data List a = Nil | Cons a (List a)\r
+\r
+hasEvenLength :: List a -> Boolean\r
+hasEvenLength l = do \r
+ even Nil = True\r
+ even (Cons _ t) = odd t\r
+ odd Nil = False\r
+ odd (Cons _ t) = even t\r
+ even l\r
+\r
+main = hasEvenLength (Cons (1 :: Integer) (Cons (2 :: Integer) (Cons (3 :: Integer) (Cons (4 :: Integer) Nil))))\r
+--\r
+true
\ No newline at end of file