HaRe-0.6: StrategyLib-4.0-beta/examples/haskell/SyntaxTermInstances.hs
module SyntaxTermInstances where
import Language.Haskell.Syntax
import TermRep
{- Generated by DrIFT (Automatic class derivations for Haskell) -}
{-# LINE 1 "/usr/lib/hugs/libraries/Language/Haskell/Syntax.hs" #-}
{-* Generated by DrIFT : Look, but Don't Touch. *-}
instance Term SrcLoc where
explode (x::SrcLoc) = TermRep (toDyn x, f x, g x) where
f (SrcLoc aa ab ac) = [explode aa,explode ab,explode ac]
g (SrcLoc _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac] -> toDyn ((SrcLoc (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac))::SrcLoc) ; _ -> error "Term explosion error."
-- _tc_SrcLocTc = mkTyCon "SrcLoc"
-- instance Typeable SrcLoc where
-- typeOf x = mkTyConApp _tc_SrcLocTc [ ]
instance Term Module where
explode (x::Module) = TermRep (toDyn x, f x, g x) where
f (Module aa) = [explode aa]
g (Module _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((Module (TermRep.fDyn aa))::Module) ; _ -> error "Term explosion error."
-- _tc_ModuleTc = mkTyCon "Module"
-- instance Typeable Module where
-- typeOf x = mkTyConApp _tc_ModuleTc [ ]
instance Term HsSpecialCon where
explode (x::HsSpecialCon) = TermRep (toDyn x, f x, g x) where
f HsUnitCon = []
f HsListCon = []
f HsFunCon = []
f (HsTupleCon aa) = [explode aa]
f HsCons = []
g HsUnitCon xs = case TermRep.fArgs xs of [] -> toDyn ((HsUnitCon)::HsSpecialCon) ; _ -> error "Term explosion error."
g HsListCon xs = case TermRep.fArgs xs of [] -> toDyn ((HsListCon)::HsSpecialCon) ; _ -> error "Term explosion error."
g HsFunCon xs = case TermRep.fArgs xs of [] -> toDyn ((HsFunCon)::HsSpecialCon) ; _ -> error "Term explosion error."
g (HsTupleCon _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsTupleCon (TermRep.fDyn aa))::HsSpecialCon) ; _ -> error "Term explosion error."
g HsCons xs = case TermRep.fArgs xs of [] -> toDyn ((HsCons)::HsSpecialCon) ; _ -> error "Term explosion error."
-- _tc_HsSpecialConTc = mkTyCon "HsSpecialCon"
-- instance Typeable HsSpecialCon where
-- typeOf x = mkTyConApp _tc_HsSpecialConTc [ ]
instance Term HsQName where
explode (x::HsQName) = TermRep (toDyn x, f x, g x) where
f (Qual aa ab) = [explode aa,explode ab]
f (UnQual ac) = [explode ac]
f (Special ad) = [explode ad]
g (Qual _ _) xs = case TermRep.fArgs xs of [aa,ab] -> toDyn ((Qual (TermRep.fDyn aa) (TermRep.fDyn ab))::HsQName) ; _ -> error "Term explosion error."
g (UnQual _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((UnQual (TermRep.fDyn ac))::HsQName) ; _ -> error "Term explosion error."
g (Special _) xs = case TermRep.fArgs xs of [ad] -> toDyn ((Special (TermRep.fDyn ad))::HsQName) ; _ -> error "Term explosion error."
-- _tc_HsQNameTc = mkTyCon "HsQName"
-- instance Typeable HsQName where
-- typeOf x = mkTyConApp _tc_HsQNameTc [ ]
instance Term HsName where
explode (x::HsName) = TermRep (toDyn x, f x, g x) where
f (HsIdent aa) = [explode aa]
f (HsSymbol ab) = [explode ab]
g (HsIdent _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsIdent (TermRep.fDyn aa))::HsName) ; _ -> error "Term explosion error."
g (HsSymbol _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsSymbol (TermRep.fDyn ab))::HsName) ; _ -> error "Term explosion error."
-- _tc_HsNameTc = mkTyCon "HsName"
-- instance Typeable HsName where
-- typeOf x = mkTyConApp _tc_HsNameTc [ ]
instance Term HsQOp where
explode (x::HsQOp) = TermRep (toDyn x, f x, g x) where
f (HsQVarOp aa) = [explode aa]
f (HsQConOp ab) = [explode ab]
g (HsQVarOp _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsQVarOp (TermRep.fDyn aa))::HsQOp) ; _ -> error "Term explosion error."
g (HsQConOp _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsQConOp (TermRep.fDyn ab))::HsQOp) ; _ -> error "Term explosion error."
-- _tc_HsQOpTc = mkTyCon "HsQOp"
-- instance Typeable HsQOp where
-- typeOf x = mkTyConApp _tc_HsQOpTc [ ]
instance Term HsOp where
explode (x::HsOp) = TermRep (toDyn x, f x, g x) where
f (HsVarOp aa) = [explode aa]
f (HsConOp ab) = [explode ab]
g (HsVarOp _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsVarOp (TermRep.fDyn aa))::HsOp) ; _ -> error "Term explosion error."
g (HsConOp _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsConOp (TermRep.fDyn ab))::HsOp) ; _ -> error "Term explosion error."
-- _tc_HsOpTc = mkTyCon "HsOp"
-- instance Typeable HsOp where
-- typeOf x = mkTyConApp _tc_HsOpTc [ ]
instance Term HsCName where
explode (x::HsCName) = TermRep (toDyn x, f x, g x) where
f (HsVarName aa) = [explode aa]
f (HsConName ab) = [explode ab]
g (HsVarName _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsVarName (TermRep.fDyn aa))::HsCName) ; _ -> error "Term explosion error."
g (HsConName _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsConName (TermRep.fDyn ab))::HsCName) ; _ -> error "Term explosion error."
-- _tc_HsCNameTc = mkTyCon "HsCName"
-- instance Typeable HsCName where
-- typeOf x = mkTyConApp _tc_HsCNameTc [ ]
instance Term HsModule where
explode (x::HsModule) = TermRep (toDyn x, f x, g x) where
f (HsModule aa ab ac ad ae) = [explode aa,explode ab,explode ac,explode ad,explode ae]
g (HsModule _ _ _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac,ad,ae] -> toDyn ((HsModule (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac) (TermRep.fDyn ad) (TermRep.fDyn ae))::HsModule) ; _ -> error "Term explosion error."
-- _tc_HsModuleTc = mkTyCon "HsModule"
-- instance Typeable HsModule where
-- typeOf x = mkTyConApp _tc_HsModuleTc [ ]
instance Term HsExportSpec where
explode (x::HsExportSpec) = TermRep (toDyn x, f x, g x) where
f (HsEVar aa) = [explode aa]
f (HsEAbs ab) = [explode ab]
f (HsEThingAll ac) = [explode ac]
f (HsEThingWith ad ae) = [explode ad,explode ae]
f (HsEModuleContents af) = [explode af]
g (HsEVar _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsEVar (TermRep.fDyn aa))::HsExportSpec) ; _ -> error "Term explosion error."
g (HsEAbs _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsEAbs (TermRep.fDyn ab))::HsExportSpec) ; _ -> error "Term explosion error."
g (HsEThingAll _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((HsEThingAll (TermRep.fDyn ac))::HsExportSpec) ; _ -> error "Term explosion error."
g (HsEThingWith _ _) xs = case TermRep.fArgs xs of [ad,ae] -> toDyn ((HsEThingWith (TermRep.fDyn ad) (TermRep.fDyn ae))::HsExportSpec) ; _ -> error "Term explosion error."
g (HsEModuleContents _) xs = case TermRep.fArgs xs of [af] -> toDyn ((HsEModuleContents (TermRep.fDyn af))::HsExportSpec) ; _ -> error "Term explosion error."
-- _tc_HsExportSpecTc = mkTyCon "HsExportSpec"
-- instance Typeable HsExportSpec where
-- typeOf x = mkTyConApp _tc_HsExportSpecTc [ ]
instance Term HsImportDecl where
explode (x::HsImportDecl) = TermRep (toDyn x, f x, g x) where
f (HsImportDecl aa ab ac ad ae) = [explode aa,explode ab,explode ac,explode ad,explode ae]
g (HsImportDecl _ _ _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac,ad,ae] -> toDyn ((HsImportDecl (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac) (TermRep.fDyn ad) (TermRep.fDyn ae))::HsImportDecl) ; _ -> error "Term explosion error."
-- _tc_HsImportDeclTc = mkTyCon "HsImportDecl"
-- instance Typeable HsImportDecl where
-- typeOf x = mkTyConApp _tc_HsImportDeclTc [ ]
instance Term HsImportSpec where
explode (x::HsImportSpec) = TermRep (toDyn x, f x, g x) where
f (HsIVar aa) = [explode aa]
f (HsIAbs ab) = [explode ab]
f (HsIThingAll ac) = [explode ac]
f (HsIThingWith ad ae) = [explode ad,explode ae]
g (HsIVar _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsIVar (TermRep.fDyn aa))::HsImportSpec) ; _ -> error "Term explosion error."
g (HsIAbs _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsIAbs (TermRep.fDyn ab))::HsImportSpec) ; _ -> error "Term explosion error."
g (HsIThingAll _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((HsIThingAll (TermRep.fDyn ac))::HsImportSpec) ; _ -> error "Term explosion error."
g (HsIThingWith _ _) xs = case TermRep.fArgs xs of [ad,ae] -> toDyn ((HsIThingWith (TermRep.fDyn ad) (TermRep.fDyn ae))::HsImportSpec) ; _ -> error "Term explosion error."
-- _tc_HsImportSpecTc = mkTyCon "HsImportSpec"
-- instance Typeable HsImportSpec where
-- typeOf x = mkTyConApp _tc_HsImportSpecTc [ ]
instance Term HsAssoc where
explode (x::HsAssoc) = TermRep (toDyn x, f x, g x) where
f HsAssocNone = []
f HsAssocLeft = []
f HsAssocRight = []
g HsAssocNone xs = case TermRep.fArgs xs of [] -> toDyn ((HsAssocNone)::HsAssoc) ; _ -> error "Term explosion error."
g HsAssocLeft xs = case TermRep.fArgs xs of [] -> toDyn ((HsAssocLeft)::HsAssoc) ; _ -> error "Term explosion error."
g HsAssocRight xs = case TermRep.fArgs xs of [] -> toDyn ((HsAssocRight)::HsAssoc) ; _ -> error "Term explosion error."
-- _tc_HsAssocTc = mkTyCon "HsAssoc"
-- instance Typeable HsAssoc where
-- typeOf x = mkTyConApp _tc_HsAssocTc [ ]
instance Term HsDecl where
explode (x::HsDecl) = TermRep (toDyn x, f x, g x) where
f (HsTypeDecl aa ab ac ad) = [explode aa,explode ab,explode ac,explode ad]
f (HsDataDecl ae af ag ah ai aj) = [explode ae,explode af,explode ag,explode ah,explode ai,explode aj]
f (HsInfixDecl ak al am an) = [explode ak,explode al,explode am,explode an]
f (HsNewTypeDecl ao ap aq ar as at) = [explode ao,explode ap,explode aq,explode ar,explode as,explode at]
f (HsClassDecl au av aw ax ay) = [explode au,explode av,explode aw,explode ax,explode ay]
f (HsInstDecl az aA aB aC aD) = [explode az,explode aA,explode aB,explode aC,explode aD]
f (HsDefaultDecl aE aF) = [explode aE,explode aF]
f (HsTypeSig aG aH aI) = [explode aG,explode aH,explode aI]
f (HsFunBind aJ) = [explode aJ]
f (HsPatBind aK aL aM aN) = [explode aK,explode aL,explode aM,explode aN]
g (HsTypeDecl _ _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac,ad] -> toDyn ((HsTypeDecl (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac) (TermRep.fDyn ad))::HsDecl) ; _ -> error "Term explosion error."
g (HsDataDecl _ _ _ _ _ _) xs = case TermRep.fArgs xs of [ae,af,ag,ah,ai,aj] -> toDyn ((HsDataDecl (TermRep.fDyn ae) (TermRep.fDyn af) (TermRep.fDyn ag) (TermRep.fDyn ah) (TermRep.fDyn ai) (TermRep.fDyn aj))::HsDecl) ; _ -> error "Term explosion error."
g (HsInfixDecl _ _ _ _) xs = case TermRep.fArgs xs of [ak,al,am,an] -> toDyn ((HsInfixDecl (TermRep.fDyn ak) (TermRep.fDyn al) (TermRep.fDyn am) (TermRep.fDyn an))::HsDecl) ; _ -> error "Term explosion error."
g (HsNewTypeDecl _ _ _ _ _ _) xs = case TermRep.fArgs xs of [ao,ap,aq,ar,as,at] -> toDyn ((HsNewTypeDecl (TermRep.fDyn ao) (TermRep.fDyn ap) (TermRep.fDyn aq) (TermRep.fDyn ar) (TermRep.fDyn as) (TermRep.fDyn at))::HsDecl) ; _ -> error "Term explosion error."
g (HsClassDecl _ _ _ _ _) xs = case TermRep.fArgs xs of [au,av,aw,ax,ay] -> toDyn ((HsClassDecl (TermRep.fDyn au) (TermRep.fDyn av) (TermRep.fDyn aw) (TermRep.fDyn ax) (TermRep.fDyn ay))::HsDecl) ; _ -> error "Term explosion error."
g (HsInstDecl _ _ _ _ _) xs = case TermRep.fArgs xs of [az,aA,aB,aC,aD] -> toDyn ((HsInstDecl (TermRep.fDyn az) (TermRep.fDyn aA) (TermRep.fDyn aB) (TermRep.fDyn aC) (TermRep.fDyn aD))::HsDecl) ; _ -> error "Term explosion error."
g (HsDefaultDecl _ _) xs = case TermRep.fArgs xs of [aE,aF] -> toDyn ((HsDefaultDecl (TermRep.fDyn aE) (TermRep.fDyn aF))::HsDecl) ; _ -> error "Term explosion error."
g (HsTypeSig _ _ _) xs = case TermRep.fArgs xs of [aG,aH,aI] -> toDyn ((HsTypeSig (TermRep.fDyn aG) (TermRep.fDyn aH) (TermRep.fDyn aI))::HsDecl) ; _ -> error "Term explosion error."
g (HsFunBind _) xs = case TermRep.fArgs xs of [aJ] -> toDyn ((HsFunBind (TermRep.fDyn aJ))::HsDecl) ; _ -> error "Term explosion error."
g (HsPatBind _ _ _ _) xs = case TermRep.fArgs xs of [aK,aL,aM,aN] -> toDyn ((HsPatBind (TermRep.fDyn aK) (TermRep.fDyn aL) (TermRep.fDyn aM) (TermRep.fDyn aN))::HsDecl) ; _ -> error "Term explosion error."
-- _tc_HsDeclTc = mkTyCon "HsDecl"
-- instance Typeable HsDecl where
-- typeOf x = mkTyConApp _tc_HsDeclTc [ ]
instance Term HsMatch where
explode (x::HsMatch) = TermRep (toDyn x, f x, g x) where
f (HsMatch aa ab ac ad ae) = [explode aa,explode ab,explode ac,explode ad,explode ae]
g (HsMatch _ _ _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac,ad,ae] -> toDyn ((HsMatch (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac) (TermRep.fDyn ad) (TermRep.fDyn ae))::HsMatch) ; _ -> error "Term explosion error."
-- _tc_HsMatchTc = mkTyCon "HsMatch"
-- instance Typeable HsMatch where
-- typeOf x = mkTyConApp _tc_HsMatchTc [ ]
instance Term HsConDecl where
explode (x::HsConDecl) = TermRep (toDyn x, f x, g x) where
f (HsConDecl aa ab ac) = [explode aa,explode ab,explode ac]
f (HsRecDecl ad ae af) = [explode ad,explode ae,explode af]
g (HsConDecl _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac] -> toDyn ((HsConDecl (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac))::HsConDecl) ; _ -> error "Term explosion error."
g (HsRecDecl _ _ _) xs = case TermRep.fArgs xs of [ad,ae,af] -> toDyn ((HsRecDecl (TermRep.fDyn ad) (TermRep.fDyn ae) (TermRep.fDyn af))::HsConDecl) ; _ -> error "Term explosion error."
-- _tc_HsConDeclTc = mkTyCon "HsConDecl"
-- instance Typeable HsConDecl where
-- typeOf x = mkTyConApp _tc_HsConDeclTc [ ]
instance Term HsBangType where
explode (x::HsBangType) = TermRep (toDyn x, f x, g x) where
f (HsBangedTy aa) = [explode aa]
f (HsUnBangedTy ab) = [explode ab]
g (HsBangedTy _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsBangedTy (TermRep.fDyn aa))::HsBangType) ; _ -> error "Term explosion error."
g (HsUnBangedTy _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsUnBangedTy (TermRep.fDyn ab))::HsBangType) ; _ -> error "Term explosion error."
-- _tc_HsBangTypeTc = mkTyCon "HsBangType"
-- instance Typeable HsBangType where
-- typeOf x = mkTyConApp _tc_HsBangTypeTc [ ]
instance Term HsRhs where
explode (x::HsRhs) = TermRep (toDyn x, f x, g x) where
f (HsUnGuardedRhs aa) = [explode aa]
f (HsGuardedRhss ab) = [explode ab]
g (HsUnGuardedRhs _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsUnGuardedRhs (TermRep.fDyn aa))::HsRhs) ; _ -> error "Term explosion error."
g (HsGuardedRhss _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsGuardedRhss (TermRep.fDyn ab))::HsRhs) ; _ -> error "Term explosion error."
-- _tc_HsRhsTc = mkTyCon "HsRhs"
-- instance Typeable HsRhs where
-- typeOf x = mkTyConApp _tc_HsRhsTc [ ]
instance Term HsGuardedRhs where
explode (x::HsGuardedRhs) = TermRep (toDyn x, f x, g x) where
f (HsGuardedRhs aa ab ac) = [explode aa,explode ab,explode ac]
g (HsGuardedRhs _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac] -> toDyn ((HsGuardedRhs (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac))::HsGuardedRhs) ; _ -> error "Term explosion error."
-- _tc_HsGuardedRhsTc = mkTyCon "HsGuardedRhs"
-- instance Typeable HsGuardedRhs where
-- typeOf x = mkTyConApp _tc_HsGuardedRhsTc [ ]
instance Term HsQualType where
explode (x::HsQualType) = TermRep (toDyn x, f x, g x) where
f (HsQualType aa ab) = [explode aa,explode ab]
g (HsQualType _ _) xs = case TermRep.fArgs xs of [aa,ab] -> toDyn ((HsQualType (TermRep.fDyn aa) (TermRep.fDyn ab))::HsQualType) ; _ -> error "Term explosion error."
-- _tc_HsQualTypeTc = mkTyCon "HsQualType"
-- instance Typeable HsQualType where
-- typeOf x = mkTyConApp _tc_HsQualTypeTc [ ]
instance Term HsType where
explode (x::HsType) = TermRep (toDyn x, f x, g x) where
f (HsTyFun aa ab) = [explode aa,explode ab]
f (HsTyTuple ac) = [explode ac]
f (HsTyApp ad ae) = [explode ad,explode ae]
f (HsTyVar af) = [explode af]
f (HsTyCon ag) = [explode ag]
g (HsTyFun _ _) xs = case TermRep.fArgs xs of [aa,ab] -> toDyn ((HsTyFun (TermRep.fDyn aa) (TermRep.fDyn ab))::HsType) ; _ -> error "Term explosion error."
g (HsTyTuple _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((HsTyTuple (TermRep.fDyn ac))::HsType) ; _ -> error "Term explosion error."
g (HsTyApp _ _) xs = case TermRep.fArgs xs of [ad,ae] -> toDyn ((HsTyApp (TermRep.fDyn ad) (TermRep.fDyn ae))::HsType) ; _ -> error "Term explosion error."
g (HsTyVar _) xs = case TermRep.fArgs xs of [af] -> toDyn ((HsTyVar (TermRep.fDyn af))::HsType) ; _ -> error "Term explosion error."
g (HsTyCon _) xs = case TermRep.fArgs xs of [ag] -> toDyn ((HsTyCon (TermRep.fDyn ag))::HsType) ; _ -> error "Term explosion error."
-- _tc_HsTypeTc = mkTyCon "HsType"
-- instance Typeable HsType where
-- typeOf x = mkTyConApp _tc_HsTypeTc [ ]
instance Term HsLiteral where
explode (x::HsLiteral) = TermRep (toDyn x, f x, g x) where
f (HsInt aa) = [explode aa]
f (HsChar ab) = [explode ab]
f (HsString ac) = [explode ac]
f (HsFrac ad) = [explode ad]
f (HsCharPrim ae) = [explode ae]
f (HsStringPrim af) = [explode af]
f (HsIntPrim ag) = [explode ag]
f (HsFloatPrim ah) = [explode ah]
f (HsDoublePrim ai) = [explode ai]
g (HsInt _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsInt (TermRep.fDyn aa))::HsLiteral) ; _ -> error "Term explosion error."
g (HsChar _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsChar (TermRep.fDyn ab))::HsLiteral) ; _ -> error "Term explosion error."
g (HsString _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((HsString (TermRep.fDyn ac))::HsLiteral) ; _ -> error "Term explosion error."
g (HsFrac _) xs = case TermRep.fArgs xs of [ad] -> toDyn ((HsFrac (TermRep.fDyn ad))::HsLiteral) ; _ -> error "Term explosion error."
g (HsCharPrim _) xs = case TermRep.fArgs xs of [ae] -> toDyn ((HsCharPrim (TermRep.fDyn ae))::HsLiteral) ; _ -> error "Term explosion error."
g (HsStringPrim _) xs = case TermRep.fArgs xs of [af] -> toDyn ((HsStringPrim (TermRep.fDyn af))::HsLiteral) ; _ -> error "Term explosion error."
g (HsIntPrim _) xs = case TermRep.fArgs xs of [ag] -> toDyn ((HsIntPrim (TermRep.fDyn ag))::HsLiteral) ; _ -> error "Term explosion error."
g (HsFloatPrim _) xs = case TermRep.fArgs xs of [ah] -> toDyn ((HsFloatPrim (TermRep.fDyn ah))::HsLiteral) ; _ -> error "Term explosion error."
g (HsDoublePrim _) xs = case TermRep.fArgs xs of [ai] -> toDyn ((HsDoublePrim (TermRep.fDyn ai))::HsLiteral) ; _ -> error "Term explosion error."
-- _tc_HsLiteralTc = mkTyCon "HsLiteral"
-- instance Typeable HsLiteral where
-- typeOf x = mkTyConApp _tc_HsLiteralTc [ ]
instance Term HsExp where
explode (x::HsExp) = TermRep (toDyn x, f x, g x) where
f (HsVar aa) = [explode aa]
f (HsCon ab) = [explode ab]
f (HsLit ac) = [explode ac]
f (HsInfixApp ad ae af) = [explode ad,explode ae,explode af]
f (HsApp ag ah) = [explode ag,explode ah]
f (HsNegApp ai) = [explode ai]
f (HsLambda aj ak al) = [explode aj,explode ak,explode al]
f (HsLet am an) = [explode am,explode an]
f (HsIf ao ap aq) = [explode ao,explode ap,explode aq]
f (HsCase ar as) = [explode ar,explode as]
f (HsDo at) = [explode at]
f (HsTuple au) = [explode au]
f (HsList av) = [explode av]
f (HsParen aw) = [explode aw]
f (HsLeftSection ax ay) = [explode ax,explode ay]
f (HsRightSection az aA) = [explode az,explode aA]
f (HsRecConstr aB aC) = [explode aB,explode aC]
f (HsRecUpdate aD aE) = [explode aD,explode aE]
f (HsEnumFrom aF) = [explode aF]
f (HsEnumFromTo aG aH) = [explode aG,explode aH]
f (HsEnumFromThen aI aJ) = [explode aI,explode aJ]
f (HsEnumFromThenTo aK aL aM) = [explode aK,explode aL,explode aM]
f (HsListComp aN aO) = [explode aN,explode aO]
f (HsExpTypeSig aP aQ aR) = [explode aP,explode aQ,explode aR]
f (HsAsPat aS aT) = [explode aS,explode aT]
f HsWildCard = []
f (HsIrrPat aU) = [explode aU]
g (HsVar _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsVar (TermRep.fDyn aa))::HsExp) ; _ -> error "Term explosion error."
g (HsCon _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsCon (TermRep.fDyn ab))::HsExp) ; _ -> error "Term explosion error."
g (HsLit _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((HsLit (TermRep.fDyn ac))::HsExp) ; _ -> error "Term explosion error."
g (HsInfixApp _ _ _) xs = case TermRep.fArgs xs of [ad,ae,af] -> toDyn ((HsInfixApp (TermRep.fDyn ad) (TermRep.fDyn ae) (TermRep.fDyn af))::HsExp) ; _ -> error "Term explosion error."
g (HsApp _ _) xs = case TermRep.fArgs xs of [ag,ah] -> toDyn ((HsApp (TermRep.fDyn ag) (TermRep.fDyn ah))::HsExp) ; _ -> error "Term explosion error."
g (HsNegApp _) xs = case TermRep.fArgs xs of [ai] -> toDyn ((HsNegApp (TermRep.fDyn ai))::HsExp) ; _ -> error "Term explosion error."
g (HsLambda _ _ _) xs = case TermRep.fArgs xs of [aj,ak,al] -> toDyn ((HsLambda (TermRep.fDyn aj) (TermRep.fDyn ak) (TermRep.fDyn al))::HsExp) ; _ -> error "Term explosion error."
g (HsLet _ _) xs = case TermRep.fArgs xs of [am,an] -> toDyn ((HsLet (TermRep.fDyn am) (TermRep.fDyn an))::HsExp) ; _ -> error "Term explosion error."
g (HsIf _ _ _) xs = case TermRep.fArgs xs of [ao,ap,aq] -> toDyn ((HsIf (TermRep.fDyn ao) (TermRep.fDyn ap) (TermRep.fDyn aq))::HsExp) ; _ -> error "Term explosion error."
g (HsCase _ _) xs = case TermRep.fArgs xs of [ar,as] -> toDyn ((HsCase (TermRep.fDyn ar) (TermRep.fDyn as))::HsExp) ; _ -> error "Term explosion error."
g (HsDo _) xs = case TermRep.fArgs xs of [at] -> toDyn ((HsDo (TermRep.fDyn at))::HsExp) ; _ -> error "Term explosion error."
g (HsTuple _) xs = case TermRep.fArgs xs of [au] -> toDyn ((HsTuple (TermRep.fDyn au))::HsExp) ; _ -> error "Term explosion error."
g (HsList _) xs = case TermRep.fArgs xs of [av] -> toDyn ((HsList (TermRep.fDyn av))::HsExp) ; _ -> error "Term explosion error."
g (HsParen _) xs = case TermRep.fArgs xs of [aw] -> toDyn ((HsParen (TermRep.fDyn aw))::HsExp) ; _ -> error "Term explosion error."
g (HsLeftSection _ _) xs = case TermRep.fArgs xs of [ax,ay] -> toDyn ((HsLeftSection (TermRep.fDyn ax) (TermRep.fDyn ay))::HsExp) ; _ -> error "Term explosion error."
g (HsRightSection _ _) xs = case TermRep.fArgs xs of [az,aA] -> toDyn ((HsRightSection (TermRep.fDyn az) (TermRep.fDyn aA))::HsExp) ; _ -> error "Term explosion error."
g (HsRecConstr _ _) xs = case TermRep.fArgs xs of [aB,aC] -> toDyn ((HsRecConstr (TermRep.fDyn aB) (TermRep.fDyn aC))::HsExp) ; _ -> error "Term explosion error."
g (HsRecUpdate _ _) xs = case TermRep.fArgs xs of [aD,aE] -> toDyn ((HsRecUpdate (TermRep.fDyn aD) (TermRep.fDyn aE))::HsExp) ; _ -> error "Term explosion error."
g (HsEnumFrom _) xs = case TermRep.fArgs xs of [aF] -> toDyn ((HsEnumFrom (TermRep.fDyn aF))::HsExp) ; _ -> error "Term explosion error."
g (HsEnumFromTo _ _) xs = case TermRep.fArgs xs of [aG,aH] -> toDyn ((HsEnumFromTo (TermRep.fDyn aG) (TermRep.fDyn aH))::HsExp) ; _ -> error "Term explosion error."
g (HsEnumFromThen _ _) xs = case TermRep.fArgs xs of [aI,aJ] -> toDyn ((HsEnumFromThen (TermRep.fDyn aI) (TermRep.fDyn aJ))::HsExp) ; _ -> error "Term explosion error."
g (HsEnumFromThenTo _ _ _) xs = case TermRep.fArgs xs of [aK,aL,aM] -> toDyn ((HsEnumFromThenTo (TermRep.fDyn aK) (TermRep.fDyn aL) (TermRep.fDyn aM))::HsExp) ; _ -> error "Term explosion error."
g (HsListComp _ _) xs = case TermRep.fArgs xs of [aN,aO] -> toDyn ((HsListComp (TermRep.fDyn aN) (TermRep.fDyn aO))::HsExp) ; _ -> error "Term explosion error."
g (HsExpTypeSig _ _ _) xs = case TermRep.fArgs xs of [aP,aQ,aR] -> toDyn ((HsExpTypeSig (TermRep.fDyn aP) (TermRep.fDyn aQ) (TermRep.fDyn aR))::HsExp) ; _ -> error "Term explosion error."
g (HsAsPat _ _) xs = case TermRep.fArgs xs of [aS,aT] -> toDyn ((HsAsPat (TermRep.fDyn aS) (TermRep.fDyn aT))::HsExp) ; _ -> error "Term explosion error."
g HsWildCard xs = case TermRep.fArgs xs of [] -> toDyn ((HsWildCard)::HsExp) ; _ -> error "Term explosion error."
g (HsIrrPat _) xs = case TermRep.fArgs xs of [aU] -> toDyn ((HsIrrPat (TermRep.fDyn aU))::HsExp) ; _ -> error "Term explosion error."
-- _tc_HsExpTc = mkTyCon "HsExp"
-- instance Typeable HsExp where
-- typeOf x = mkTyConApp _tc_HsExpTc [ ]
instance Term HsPat where
explode (x::HsPat) = TermRep (toDyn x, f x, g x) where
f (HsPVar aa) = [explode aa]
f (HsPLit ab) = [explode ab]
f (HsPNeg ac) = [explode ac]
f (HsPInfixApp ad ae af) = [explode ad,explode ae,explode af]
f (HsPApp ag ah) = [explode ag,explode ah]
f (HsPTuple ai) = [explode ai]
f (HsPList aj) = [explode aj]
f (HsPParen ak) = [explode ak]
f (HsPRec al am) = [explode al,explode am]
f (HsPAsPat an ao) = [explode an,explode ao]
f HsPWildCard = []
f (HsPIrrPat ap) = [explode ap]
g (HsPVar _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsPVar (TermRep.fDyn aa))::HsPat) ; _ -> error "Term explosion error."
g (HsPLit _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsPLit (TermRep.fDyn ab))::HsPat) ; _ -> error "Term explosion error."
g (HsPNeg _) xs = case TermRep.fArgs xs of [ac] -> toDyn ((HsPNeg (TermRep.fDyn ac))::HsPat) ; _ -> error "Term explosion error."
g (HsPInfixApp _ _ _) xs = case TermRep.fArgs xs of [ad,ae,af] -> toDyn ((HsPInfixApp (TermRep.fDyn ad) (TermRep.fDyn ae) (TermRep.fDyn af))::HsPat) ; _ -> error "Term explosion error."
g (HsPApp _ _) xs = case TermRep.fArgs xs of [ag,ah] -> toDyn ((HsPApp (TermRep.fDyn ag) (TermRep.fDyn ah))::HsPat) ; _ -> error "Term explosion error."
g (HsPTuple _) xs = case TermRep.fArgs xs of [ai] -> toDyn ((HsPTuple (TermRep.fDyn ai))::HsPat) ; _ -> error "Term explosion error."
g (HsPList _) xs = case TermRep.fArgs xs of [aj] -> toDyn ((HsPList (TermRep.fDyn aj))::HsPat) ; _ -> error "Term explosion error."
g (HsPParen _) xs = case TermRep.fArgs xs of [ak] -> toDyn ((HsPParen (TermRep.fDyn ak))::HsPat) ; _ -> error "Term explosion error."
g (HsPRec _ _) xs = case TermRep.fArgs xs of [al,am] -> toDyn ((HsPRec (TermRep.fDyn al) (TermRep.fDyn am))::HsPat) ; _ -> error "Term explosion error."
g (HsPAsPat _ _) xs = case TermRep.fArgs xs of [an,ao] -> toDyn ((HsPAsPat (TermRep.fDyn an) (TermRep.fDyn ao))::HsPat) ; _ -> error "Term explosion error."
g HsPWildCard xs = case TermRep.fArgs xs of [] -> toDyn ((HsPWildCard)::HsPat) ; _ -> error "Term explosion error."
g (HsPIrrPat _) xs = case TermRep.fArgs xs of [ap] -> toDyn ((HsPIrrPat (TermRep.fDyn ap))::HsPat) ; _ -> error "Term explosion error."
-- _tc_HsPatTc = mkTyCon "HsPat"
-- instance Typeable HsPat where
-- typeOf x = mkTyConApp _tc_HsPatTc [ ]
instance Term HsPatField where
explode (x::HsPatField) = TermRep (toDyn x, f x, g x) where
f (HsPFieldPat aa ab) = [explode aa,explode ab]
g (HsPFieldPat _ _) xs = case TermRep.fArgs xs of [aa,ab] -> toDyn ((HsPFieldPat (TermRep.fDyn aa) (TermRep.fDyn ab))::HsPatField) ; _ -> error "Term explosion error."
-- _tc_HsPatFieldTc = mkTyCon "HsPatField"
-- instance Typeable HsPatField where
-- typeOf x = mkTyConApp _tc_HsPatFieldTc [ ]
instance Term HsStmt where
explode (x::HsStmt) = TermRep (toDyn x, f x, g x) where
f (HsGenerator aa ab ac) = [explode aa,explode ab,explode ac]
f (HsQualifier ad) = [explode ad]
f (HsLetStmt ae) = [explode ae]
g (HsGenerator _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac] -> toDyn ((HsGenerator (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac))::HsStmt) ; _ -> error "Term explosion error."
g (HsQualifier _) xs = case TermRep.fArgs xs of [ad] -> toDyn ((HsQualifier (TermRep.fDyn ad))::HsStmt) ; _ -> error "Term explosion error."
g (HsLetStmt _) xs = case TermRep.fArgs xs of [ae] -> toDyn ((HsLetStmt (TermRep.fDyn ae))::HsStmt) ; _ -> error "Term explosion error."
-- _tc_HsStmtTc = mkTyCon "HsStmt"
-- instance Typeable HsStmt where
-- typeOf x = mkTyConApp _tc_HsStmtTc [ ]
instance Term HsFieldUpdate where
explode (x::HsFieldUpdate) = TermRep (toDyn x, f x, g x) where
f (HsFieldUpdate aa ab) = [explode aa,explode ab]
g (HsFieldUpdate _ _) xs = case TermRep.fArgs xs of [aa,ab] -> toDyn ((HsFieldUpdate (TermRep.fDyn aa) (TermRep.fDyn ab))::HsFieldUpdate) ; _ -> error "Term explosion error."
-- _tc_HsFieldUpdateTc = mkTyCon "HsFieldUpdate"
-- instance Typeable HsFieldUpdate where
-- typeOf x = mkTyConApp _tc_HsFieldUpdateTc [ ]
instance Term HsAlt where
explode (x::HsAlt) = TermRep (toDyn x, f x, g x) where
f (HsAlt aa ab ac ad) = [explode aa,explode ab,explode ac,explode ad]
g (HsAlt _ _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac,ad] -> toDyn ((HsAlt (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac) (TermRep.fDyn ad))::HsAlt) ; _ -> error "Term explosion error."
-- _tc_HsAltTc = mkTyCon "HsAlt"
-- instance Typeable HsAlt where
-- typeOf x = mkTyConApp _tc_HsAltTc [ ]
instance Term HsGuardedAlts where
explode (x::HsGuardedAlts) = TermRep (toDyn x, f x, g x) where
f (HsUnGuardedAlt aa) = [explode aa]
f (HsGuardedAlts ab) = [explode ab]
g (HsUnGuardedAlt _) xs = case TermRep.fArgs xs of [aa] -> toDyn ((HsUnGuardedAlt (TermRep.fDyn aa))::HsGuardedAlts) ; _ -> error "Term explosion error."
g (HsGuardedAlts _) xs = case TermRep.fArgs xs of [ab] -> toDyn ((HsGuardedAlts (TermRep.fDyn ab))::HsGuardedAlts) ; _ -> error "Term explosion error."
-- _tc_HsGuardedAltsTc = mkTyCon "HsGuardedAlts"
-- instance Typeable HsGuardedAlts where
-- typeOf x = mkTyConApp _tc_HsGuardedAltsTc [ ]
instance Term HsGuardedAlt where
explode (x::HsGuardedAlt) = TermRep (toDyn x, f x, g x) where
f (HsGuardedAlt aa ab ac) = [explode aa,explode ab,explode ac]
g (HsGuardedAlt _ _ _) xs = case TermRep.fArgs xs of [aa,ab,ac] -> toDyn ((HsGuardedAlt (TermRep.fDyn aa) (TermRep.fDyn ab) (TermRep.fDyn ac))::HsGuardedAlt) ; _ -> error "Term explosion error."
-- _tc_HsGuardedAltTc = mkTyCon "HsGuardedAlt"
-- instance Typeable HsGuardedAlt where
-- typeOf x = mkTyConApp _tc_HsGuardedAltTc [ ]
-- Imported from other files :-