PolyKinds06.hs:9:11: Type constructor ‘A’ cannot be used here (it is defined and used in the same recursive group) In the kind ‘A -> *’