tc211.hs:15:22: Couldn't match expected type `a -> a' with actual type `forall a1. a1 -> a1' Expected type: [a -> a] Actual type: [forall a1. a1 -> a1] 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:70:9: Couldn't match expected type `a -> a' with actual type `forall a1. a1 -> a1' Expected type: List (forall a1. a1 -> a1) -> (forall a1. a1 -> a1) -> a -> a Actual type: List (forall a1. a1 -> a1) -> (forall a1. a1 -> a1) -> forall a1. a1 -> a1 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)