Typeable and 'forall' in data constructors

I am tying to write a Term class with function application: data (Typeable a) => Term a = Const a | LVar Int | forall b. Typeable b => App (Term (b -> a)) (Term b) | Lam (Term a) Because 'forall' is present, ghc refuses to derive Typeable and Data for Term. I tried to implement them: instance (Typeable a) => Typeable (Term a) where typeOf w = mkAppTy (mkTyCon "Term.Term") [typeOf (undefined :: a)] instance (Typeable a) => Data (Term a) where toConstr (Const _) = mkConstr 1 "Const" Prefix toConstr (LVar _) = mkConstr 3 "LVar" Prefix toConstr (App _ _) = mkConstr 4 "App" Prefix toConstr (Lam _) = mkConstr 5 "Lam" Prefix But ghc 6.2.1 returns with error on the line 'toConstr (App _ _)...': parse error on input `b'. How can this be fixed? Thank you Akos Korosmezey
participants (1)
-
Akos Korosmezey