tc211.hs:17:8: error: Couldn't match expected type ‘forall a. a -> a’ with actual type ‘a2 -> a2’ In the expression: (:) :: (forall a. a -> a) -> [forall a. a -> a] -> [forall a. a -> a] In the expression: ((:) :: (forall a. a -> a) -> [forall a. a -> a] -> [forall a. a -> a]) (head foo) foo tc211.hs:18:22: error: Couldn't match type ‘forall a3. a3 -> a3’ with ‘a -> a’ Expected type: [a -> a] Actual type: [forall a. a -> a] In the first argument of ‘head’, namely ‘foo’ In the first argument of ‘(:) :: (forall a. a -> a) -> [forall a. a -> a] -> [forall a. a -> a]’, namely ‘(head foo)’ tc211.hs:59:18: error: Couldn't match expected type ‘forall a. a -> a’ with actual type ‘a1 -> a1’ In the expression: Cons :: (forall a. a -> a) -> List (forall a. a -> a) -> List (forall a. a -> a) In an equation for ‘cons’: cons = Cons :: (forall a. a -> a) -> List (forall a. a -> a) -> List (forall a. a -> a) tc211.hs:65:8: error: Couldn't match expected type ‘forall a. a -> a’ with actual type ‘a0 -> a0’ In the expression: Cons :: (forall a. a -> a) -> List (forall a. a -> a) -> List (forall a. a -> a) In the expression: (Cons :: (forall a. a -> a) -> List (forall a. a -> a) -> List (forall a. a -> a)) (\ x -> x) Nil tc211.hs:73:9: error: Couldn't match type ‘forall a4. a4 -> a4’ with ‘a3 -> a3’ Expected type: List (forall a. a -> a) -> (forall a. a -> a) -> a3 -> a3 Actual type: List (a3 -> a3) -> (a3 -> a3) -> a3 -> a3 In the expression: foo2 :: List (forall a. a -> a) -> (forall a. a -> a) -> (forall a. a -> a) In the expression: (foo2 :: List (forall a. a -> a) -> (forall a. a -> a) -> (forall a. a -> a)) xs1 (\ x -> x)