PolyKinds07.hs:10:11: Data constructor ‘A1’ cannot be used here (it is defined and used in the same recursive group) In the first argument of ‘B’, namely ‘A1’ In the type ‘B A1’ In the definition of data constructor ‘B1’