gadtSyntaxFail003.hs:7:5: error: Data constructor ‘C1’ has existential type variables, a context, or a specialised result type C1 :: forall b a c. a -> Int -> c -> Foo b a (Use ExistentialQuantification or GADTs to allow this) In the definition of data constructor ‘C1’ In the data type declaration for ‘Foo’