>to be [] in each case. ahh but in this example: f :: [Int] -> [Bool] f (i:is) = even i : f is f e@[] = e e is an empty list of Ints not an empty list of Bools! you mean: f :: [Int] -> [Bool] f (i:is) = even i : f is f _ = [] Keean.