module SyntaxATermConvertibleInstances where import Language.Haskell.Syntax import Data.ATerm.Lib {- 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 ATermConvertible SrcLoc where toATerm (SrcLoc aa ab ac) = (AAppl "SrcLoc" [ toATerm aa,toATerm ab,toATerm ac ]) fromATerm (AAppl "SrcLoc" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (SrcLoc aa' ab' ac') fromATerm u = fromATermError "SrcLoc" u instance ATermConvertible Module where toATerm (Module aa) = (AAppl "Module" [ toATerm aa ]) fromATerm (AAppl "Module" [ aa ]) = let aa' = fromATerm aa in (Module aa') fromATerm u = fromATermError "Module" u instance ATermConvertible HsSpecialCon where toATerm HsUnitCon = (AAppl "HsUnitCon" [ ]) toATerm HsListCon = (AAppl "HsListCon" [ ]) toATerm HsFunCon = (AAppl "HsFunCon" [ ]) toATerm (HsTupleCon aa) = (AAppl "HsTupleCon" [ toATerm aa ]) toATerm HsCons = (AAppl "HsCons" [ ]) fromATerm (AAppl "HsUnitCon" [ ]) = let in HsUnitCon fromATerm (AAppl "HsListCon" [ ]) = let in HsListCon fromATerm (AAppl "HsFunCon" [ ]) = let in HsFunCon fromATerm (AAppl "HsTupleCon" [ aa ]) = let aa' = fromATerm aa in (HsTupleCon aa') fromATerm (AAppl "HsCons" [ ]) = let in HsCons fromATerm u = fromATermError "HsSpecialCon" u instance ATermConvertible HsQName where toATerm (Qual aa ab) = (AAppl "Qual" [ toATerm aa,toATerm ab ]) toATerm (UnQual aa) = (AAppl "UnQual" [ toATerm aa ]) toATerm (Special aa) = (AAppl "Special" [ toATerm aa ]) fromATerm (AAppl "Qual" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (Qual aa' ab') fromATerm (AAppl "UnQual" [ aa ]) = let aa' = fromATerm aa in (UnQual aa') fromATerm (AAppl "Special" [ aa ]) = let aa' = fromATerm aa in (Special aa') fromATerm u = fromATermError "HsQName" u instance ATermConvertible HsName where toATerm (HsIdent aa) = (AAppl "HsIdent" [ toATerm aa ]) toATerm (HsSymbol aa) = (AAppl "HsSymbol" [ toATerm aa ]) fromATerm (AAppl "HsIdent" [ aa ]) = let aa' = fromATerm aa in (HsIdent aa') fromATerm (AAppl "HsSymbol" [ aa ]) = let aa' = fromATerm aa in (HsSymbol aa') fromATerm u = fromATermError "HsName" u instance ATermConvertible HsQOp where toATerm (HsQVarOp aa) = (AAppl "HsQVarOp" [ toATerm aa ]) toATerm (HsQConOp aa) = (AAppl "HsQConOp" [ toATerm aa ]) fromATerm (AAppl "HsQVarOp" [ aa ]) = let aa' = fromATerm aa in (HsQVarOp aa') fromATerm (AAppl "HsQConOp" [ aa ]) = let aa' = fromATerm aa in (HsQConOp aa') fromATerm u = fromATermError "HsQOp" u instance ATermConvertible HsOp where toATerm (HsVarOp aa) = (AAppl "HsVarOp" [ toATerm aa ]) toATerm (HsConOp aa) = (AAppl "HsConOp" [ toATerm aa ]) fromATerm (AAppl "HsVarOp" [ aa ]) = let aa' = fromATerm aa in (HsVarOp aa') fromATerm (AAppl "HsConOp" [ aa ]) = let aa' = fromATerm aa in (HsConOp aa') fromATerm u = fromATermError "HsOp" u instance ATermConvertible HsCName where toATerm (HsVarName aa) = (AAppl "HsVarName" [ toATerm aa ]) toATerm (HsConName aa) = (AAppl "HsConName" [ toATerm aa ]) fromATerm (AAppl "HsVarName" [ aa ]) = let aa' = fromATerm aa in (HsVarName aa') fromATerm (AAppl "HsConName" [ aa ]) = let aa' = fromATerm aa in (HsConName aa') fromATerm u = fromATermError "HsCName" u instance ATermConvertible HsModule where toATerm (HsModule aa ab ac ad ae) = (AAppl "HsModule" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae ]) fromATerm (AAppl "HsModule" [ aa,ab,ac,ad,ae ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae in (HsModule aa' ab' ac' ad' ae') fromATerm u = fromATermError "HsModule" u instance ATermConvertible HsExportSpec where toATerm (HsEVar aa) = (AAppl "HsEVar" [ toATerm aa ]) toATerm (HsEAbs aa) = (AAppl "HsEAbs" [ toATerm aa ]) toATerm (HsEThingAll aa) = (AAppl "HsEThingAll" [ toATerm aa ]) toATerm (HsEThingWith aa ab) = (AAppl "HsEThingWith" [ toATerm aa,toATerm ab ]) toATerm (HsEModuleContents aa) = (AAppl "HsEModuleContents" [ toATerm aa ]) fromATerm (AAppl "HsEVar" [ aa ]) = let aa' = fromATerm aa in (HsEVar aa') fromATerm (AAppl "HsEAbs" [ aa ]) = let aa' = fromATerm aa in (HsEAbs aa') fromATerm (AAppl "HsEThingAll" [ aa ]) = let aa' = fromATerm aa in (HsEThingAll aa') fromATerm (AAppl "HsEThingWith" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsEThingWith aa' ab') fromATerm (AAppl "HsEModuleContents" [ aa ]) = let aa' = fromATerm aa in (HsEModuleContents aa') fromATerm u = fromATermError "HsExportSpec" u instance ATermConvertible HsImportDecl where toATerm (HsImportDecl aa ab ac ad ae) = (AAppl "HsImportDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae ]) fromATerm (AAppl "HsImportDecl" [ aa,ab,ac,ad,ae ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae in (HsImportDecl aa' ab' ac' ad' ae') fromATerm u = fromATermError "HsImportDecl" u instance ATermConvertible HsImportSpec where toATerm (HsIVar aa) = (AAppl "HsIVar" [ toATerm aa ]) toATerm (HsIAbs aa) = (AAppl "HsIAbs" [ toATerm aa ]) toATerm (HsIThingAll aa) = (AAppl "HsIThingAll" [ toATerm aa ]) toATerm (HsIThingWith aa ab) = (AAppl "HsIThingWith" [ toATerm aa,toATerm ab ]) fromATerm (AAppl "HsIVar" [ aa ]) = let aa' = fromATerm aa in (HsIVar aa') fromATerm (AAppl "HsIAbs" [ aa ]) = let aa' = fromATerm aa in (HsIAbs aa') fromATerm (AAppl "HsIThingAll" [ aa ]) = let aa' = fromATerm aa in (HsIThingAll aa') fromATerm (AAppl "HsIThingWith" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsIThingWith aa' ab') fromATerm u = fromATermError "HsImportSpec" u instance ATermConvertible HsAssoc where toATerm HsAssocNone = (AAppl "HsAssocNone" [ ]) toATerm HsAssocLeft = (AAppl "HsAssocLeft" [ ]) toATerm HsAssocRight = (AAppl "HsAssocRight" [ ]) fromATerm (AAppl "HsAssocNone" [ ]) = let in HsAssocNone fromATerm (AAppl "HsAssocLeft" [ ]) = let in HsAssocLeft fromATerm (AAppl "HsAssocRight" [ ]) = let in HsAssocRight fromATerm u = fromATermError "HsAssoc" u instance ATermConvertible HsDecl where toATerm (HsTypeDecl aa ab ac ad) = (AAppl "HsTypeDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad ]) toATerm (HsDataDecl aa ab ac ad ae af) = (AAppl "HsDataDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae,toATerm af ]) toATerm (HsInfixDecl aa ab ac ad) = (AAppl "HsInfixDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad ]) toATerm (HsNewTypeDecl aa ab ac ad ae af) = (AAppl "HsNewTypeDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae,toATerm af ]) toATerm (HsClassDecl aa ab ac ad ae) = (AAppl "HsClassDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae ]) toATerm (HsInstDecl aa ab ac ad ae) = (AAppl "HsInstDecl" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae ]) toATerm (HsDefaultDecl aa ab) = (AAppl "HsDefaultDecl" [ toATerm aa,toATerm ab ]) toATerm (HsTypeSig aa ab ac) = (AAppl "HsTypeSig" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsFunBind aa) = (AAppl "HsFunBind" [ toATerm aa ]) toATerm (HsPatBind aa ab ac ad) = (AAppl "HsPatBind" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad ]) fromATerm (AAppl "HsTypeDecl" [ aa,ab,ac,ad ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad in (HsTypeDecl aa' ab' ac' ad') fromATerm (AAppl "HsDataDecl" [ aa,ab,ac,ad,ae,af ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae af' = fromATerm af in (HsDataDecl aa' ab' ac' ad' ae' af') fromATerm (AAppl "HsInfixDecl" [ aa,ab,ac,ad ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad in (HsInfixDecl aa' ab' ac' ad') fromATerm (AAppl "HsNewTypeDecl" [ aa,ab,ac,ad,ae,af ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae af' = fromATerm af in (HsNewTypeDecl aa' ab' ac' ad' ae' af') fromATerm (AAppl "HsClassDecl" [ aa,ab,ac,ad,ae ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae in (HsClassDecl aa' ab' ac' ad' ae') fromATerm (AAppl "HsInstDecl" [ aa,ab,ac,ad,ae ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae in (HsInstDecl aa' ab' ac' ad' ae') fromATerm (AAppl "HsDefaultDecl" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsDefaultDecl aa' ab') fromATerm (AAppl "HsTypeSig" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsTypeSig aa' ab' ac') fromATerm (AAppl "HsFunBind" [ aa ]) = let aa' = fromATerm aa in (HsFunBind aa') fromATerm (AAppl "HsPatBind" [ aa,ab,ac,ad ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad in (HsPatBind aa' ab' ac' ad') fromATerm u = fromATermError "HsDecl" u instance ATermConvertible HsMatch where toATerm (HsMatch aa ab ac ad ae) = (AAppl "HsMatch" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad,toATerm ae ]) fromATerm (AAppl "HsMatch" [ aa,ab,ac,ad,ae ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad ae' = fromATerm ae in (HsMatch aa' ab' ac' ad' ae') fromATerm u = fromATermError "HsMatch" u instance ATermConvertible HsConDecl where toATerm (HsConDecl aa ab ac) = (AAppl "HsConDecl" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsRecDecl aa ab ac) = (AAppl "HsRecDecl" [ toATerm aa,toATerm ab,toATerm ac ]) fromATerm (AAppl "HsConDecl" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsConDecl aa' ab' ac') fromATerm (AAppl "HsRecDecl" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsRecDecl aa' ab' ac') fromATerm u = fromATermError "HsConDecl" u instance ATermConvertible HsBangType where toATerm (HsBangedTy aa) = (AAppl "HsBangedTy" [ toATerm aa ]) toATerm (HsUnBangedTy aa) = (AAppl "HsUnBangedTy" [ toATerm aa ]) fromATerm (AAppl "HsBangedTy" [ aa ]) = let aa' = fromATerm aa in (HsBangedTy aa') fromATerm (AAppl "HsUnBangedTy" [ aa ]) = let aa' = fromATerm aa in (HsUnBangedTy aa') fromATerm u = fromATermError "HsBangType" u instance ATermConvertible HsRhs where toATerm (HsUnGuardedRhs aa) = (AAppl "HsUnGuardedRhs" [ toATerm aa ]) toATerm (HsGuardedRhss aa) = (AAppl "HsGuardedRhss" [ toATerm aa ]) fromATerm (AAppl "HsUnGuardedRhs" [ aa ]) = let aa' = fromATerm aa in (HsUnGuardedRhs aa') fromATerm (AAppl "HsGuardedRhss" [ aa ]) = let aa' = fromATerm aa in (HsGuardedRhss aa') fromATerm u = fromATermError "HsRhs" u instance ATermConvertible HsGuardedRhs where toATerm (HsGuardedRhs aa ab ac) = (AAppl "HsGuardedRhs" [ toATerm aa,toATerm ab,toATerm ac ]) fromATerm (AAppl "HsGuardedRhs" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsGuardedRhs aa' ab' ac') fromATerm u = fromATermError "HsGuardedRhs" u instance ATermConvertible HsQualType where toATerm (HsQualType aa ab) = (AAppl "HsQualType" [ toATerm aa,toATerm ab ]) fromATerm (AAppl "HsQualType" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsQualType aa' ab') fromATerm u = fromATermError "HsQualType" u instance ATermConvertible HsType where toATerm (HsTyFun aa ab) = (AAppl "HsTyFun" [ toATerm aa,toATerm ab ]) toATerm (HsTyTuple aa) = (AAppl "HsTyTuple" [ toATerm aa ]) toATerm (HsTyApp aa ab) = (AAppl "HsTyApp" [ toATerm aa,toATerm ab ]) toATerm (HsTyVar aa) = (AAppl "HsTyVar" [ toATerm aa ]) toATerm (HsTyCon aa) = (AAppl "HsTyCon" [ toATerm aa ]) fromATerm (AAppl "HsTyFun" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsTyFun aa' ab') fromATerm (AAppl "HsTyTuple" [ aa ]) = let aa' = fromATerm aa in (HsTyTuple aa') fromATerm (AAppl "HsTyApp" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsTyApp aa' ab') fromATerm (AAppl "HsTyVar" [ aa ]) = let aa' = fromATerm aa in (HsTyVar aa') fromATerm (AAppl "HsTyCon" [ aa ]) = let aa' = fromATerm aa in (HsTyCon aa') fromATerm u = fromATermError "HsType" u instance ATermConvertible HsLiteral where toATerm (HsInt aa) = (AAppl "HsInt" [ toATerm aa ]) toATerm (HsChar aa) = (AAppl "HsChar" [ toATerm aa ]) toATerm (HsString aa) = (AAppl "HsString" [ toATerm aa ]) toATerm (HsFrac aa) = (AAppl "HsFrac" [ toATerm aa ]) toATerm (HsCharPrim aa) = (AAppl "HsCharPrim" [ toATerm aa ]) toATerm (HsStringPrim aa) = (AAppl "HsStringPrim" [ toATerm aa ]) toATerm (HsIntPrim aa) = (AAppl "HsIntPrim" [ toATerm aa ]) toATerm (HsFloatPrim aa) = (AAppl "HsFloatPrim" [ toATerm aa ]) toATerm (HsDoublePrim aa) = (AAppl "HsDoublePrim" [ toATerm aa ]) fromATerm (AAppl "HsInt" [ aa ]) = let aa' = fromATerm aa in (HsInt aa') fromATerm (AAppl "HsChar" [ aa ]) = let aa' = fromATerm aa in (HsChar aa') fromATerm (AAppl "HsString" [ aa ]) = let aa' = fromATerm aa in (HsString aa') fromATerm (AAppl "HsFrac" [ aa ]) = let aa' = fromATerm aa in (HsFrac aa') fromATerm (AAppl "HsCharPrim" [ aa ]) = let aa' = fromATerm aa in (HsCharPrim aa') fromATerm (AAppl "HsStringPrim" [ aa ]) = let aa' = fromATerm aa in (HsStringPrim aa') fromATerm (AAppl "HsIntPrim" [ aa ]) = let aa' = fromATerm aa in (HsIntPrim aa') fromATerm (AAppl "HsFloatPrim" [ aa ]) = let aa' = fromATerm aa in (HsFloatPrim aa') fromATerm (AAppl "HsDoublePrim" [ aa ]) = let aa' = fromATerm aa in (HsDoublePrim aa') fromATerm u = fromATermError "HsLiteral" u instance ATermConvertible HsExp where toATerm (HsVar aa) = (AAppl "HsVar" [ toATerm aa ]) toATerm (HsCon aa) = (AAppl "HsCon" [ toATerm aa ]) toATerm (HsLit aa) = (AAppl "HsLit" [ toATerm aa ]) toATerm (HsInfixApp aa ab ac) = (AAppl "HsInfixApp" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsApp aa ab) = (AAppl "HsApp" [ toATerm aa,toATerm ab ]) toATerm (HsNegApp aa) = (AAppl "HsNegApp" [ toATerm aa ]) toATerm (HsLambda aa ab ac) = (AAppl "HsLambda" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsLet aa ab) = (AAppl "HsLet" [ toATerm aa,toATerm ab ]) toATerm (HsIf aa ab ac) = (AAppl "HsIf" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsCase aa ab) = (AAppl "HsCase" [ toATerm aa,toATerm ab ]) toATerm (HsDo aa) = (AAppl "HsDo" [ toATerm aa ]) toATerm (HsTuple aa) = (AAppl "HsTuple" [ toATerm aa ]) toATerm (HsList aa) = (AAppl "HsList" [ toATerm aa ]) toATerm (HsParen aa) = (AAppl "HsParen" [ toATerm aa ]) toATerm (HsLeftSection aa ab) = (AAppl "HsLeftSection" [ toATerm aa,toATerm ab ]) toATerm (HsRightSection aa ab) = (AAppl "HsRightSection" [ toATerm aa,toATerm ab ]) toATerm (HsRecConstr aa ab) = (AAppl "HsRecConstr" [ toATerm aa,toATerm ab ]) toATerm (HsRecUpdate aa ab) = (AAppl "HsRecUpdate" [ toATerm aa,toATerm ab ]) toATerm (HsEnumFrom aa) = (AAppl "HsEnumFrom" [ toATerm aa ]) toATerm (HsEnumFromTo aa ab) = (AAppl "HsEnumFromTo" [ toATerm aa,toATerm ab ]) toATerm (HsEnumFromThen aa ab) = (AAppl "HsEnumFromThen" [ toATerm aa,toATerm ab ]) toATerm (HsEnumFromThenTo aa ab ac) = (AAppl "HsEnumFromThenTo" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsListComp aa ab) = (AAppl "HsListComp" [ toATerm aa,toATerm ab ]) toATerm (HsExpTypeSig aa ab ac) = (AAppl "HsExpTypeSig" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsAsPat aa ab) = (AAppl "HsAsPat" [ toATerm aa,toATerm ab ]) toATerm HsWildCard = (AAppl "HsWildCard" [ ]) toATerm (HsIrrPat aa) = (AAppl "HsIrrPat" [ toATerm aa ]) fromATerm (AAppl "HsVar" [ aa ]) = let aa' = fromATerm aa in (HsVar aa') fromATerm (AAppl "HsCon" [ aa ]) = let aa' = fromATerm aa in (HsCon aa') fromATerm (AAppl "HsLit" [ aa ]) = let aa' = fromATerm aa in (HsLit aa') fromATerm (AAppl "HsInfixApp" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsInfixApp aa' ab' ac') fromATerm (AAppl "HsApp" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsApp aa' ab') fromATerm (AAppl "HsNegApp" [ aa ]) = let aa' = fromATerm aa in (HsNegApp aa') fromATerm (AAppl "HsLambda" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsLambda aa' ab' ac') fromATerm (AAppl "HsLet" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsLet aa' ab') fromATerm (AAppl "HsIf" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsIf aa' ab' ac') fromATerm (AAppl "HsCase" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsCase aa' ab') fromATerm (AAppl "HsDo" [ aa ]) = let aa' = fromATerm aa in (HsDo aa') fromATerm (AAppl "HsTuple" [ aa ]) = let aa' = fromATerm aa in (HsTuple aa') fromATerm (AAppl "HsList" [ aa ]) = let aa' = fromATerm aa in (HsList aa') fromATerm (AAppl "HsParen" [ aa ]) = let aa' = fromATerm aa in (HsParen aa') fromATerm (AAppl "HsLeftSection" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsLeftSection aa' ab') fromATerm (AAppl "HsRightSection" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsRightSection aa' ab') fromATerm (AAppl "HsRecConstr" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsRecConstr aa' ab') fromATerm (AAppl "HsRecUpdate" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsRecUpdate aa' ab') fromATerm (AAppl "HsEnumFrom" [ aa ]) = let aa' = fromATerm aa in (HsEnumFrom aa') fromATerm (AAppl "HsEnumFromTo" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsEnumFromTo aa' ab') fromATerm (AAppl "HsEnumFromThen" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsEnumFromThen aa' ab') fromATerm (AAppl "HsEnumFromThenTo" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsEnumFromThenTo aa' ab' ac') fromATerm (AAppl "HsListComp" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsListComp aa' ab') fromATerm (AAppl "HsExpTypeSig" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsExpTypeSig aa' ab' ac') fromATerm (AAppl "HsAsPat" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsAsPat aa' ab') fromATerm (AAppl "HsWildCard" [ ]) = let in HsWildCard fromATerm (AAppl "HsIrrPat" [ aa ]) = let aa' = fromATerm aa in (HsIrrPat aa') fromATerm u = fromATermError "HsExp" u instance ATermConvertible HsPat where toATerm (HsPVar aa) = (AAppl "HsPVar" [ toATerm aa ]) toATerm (HsPLit aa) = (AAppl "HsPLit" [ toATerm aa ]) toATerm (HsPNeg aa) = (AAppl "HsPNeg" [ toATerm aa ]) toATerm (HsPInfixApp aa ab ac) = (AAppl "HsPInfixApp" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsPApp aa ab) = (AAppl "HsPApp" [ toATerm aa,toATerm ab ]) toATerm (HsPTuple aa) = (AAppl "HsPTuple" [ toATerm aa ]) toATerm (HsPList aa) = (AAppl "HsPList" [ toATerm aa ]) toATerm (HsPParen aa) = (AAppl "HsPParen" [ toATerm aa ]) toATerm (HsPRec aa ab) = (AAppl "HsPRec" [ toATerm aa,toATerm ab ]) toATerm (HsPAsPat aa ab) = (AAppl "HsPAsPat" [ toATerm aa,toATerm ab ]) toATerm HsPWildCard = (AAppl "HsPWildCard" [ ]) toATerm (HsPIrrPat aa) = (AAppl "HsPIrrPat" [ toATerm aa ]) fromATerm (AAppl "HsPVar" [ aa ]) = let aa' = fromATerm aa in (HsPVar aa') fromATerm (AAppl "HsPLit" [ aa ]) = let aa' = fromATerm aa in (HsPLit aa') fromATerm (AAppl "HsPNeg" [ aa ]) = let aa' = fromATerm aa in (HsPNeg aa') fromATerm (AAppl "HsPInfixApp" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsPInfixApp aa' ab' ac') fromATerm (AAppl "HsPApp" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsPApp aa' ab') fromATerm (AAppl "HsPTuple" [ aa ]) = let aa' = fromATerm aa in (HsPTuple aa') fromATerm (AAppl "HsPList" [ aa ]) = let aa' = fromATerm aa in (HsPList aa') fromATerm (AAppl "HsPParen" [ aa ]) = let aa' = fromATerm aa in (HsPParen aa') fromATerm (AAppl "HsPRec" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsPRec aa' ab') fromATerm (AAppl "HsPAsPat" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsPAsPat aa' ab') fromATerm (AAppl "HsPWildCard" [ ]) = let in HsPWildCard fromATerm (AAppl "HsPIrrPat" [ aa ]) = let aa' = fromATerm aa in (HsPIrrPat aa') fromATerm u = fromATermError "HsPat" u instance ATermConvertible HsPatField where toATerm (HsPFieldPat aa ab) = (AAppl "HsPFieldPat" [ toATerm aa,toATerm ab ]) fromATerm (AAppl "HsPFieldPat" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsPFieldPat aa' ab') fromATerm u = fromATermError "HsPatField" u instance ATermConvertible HsStmt where toATerm (HsGenerator aa ab ac) = (AAppl "HsGenerator" [ toATerm aa,toATerm ab,toATerm ac ]) toATerm (HsQualifier aa) = (AAppl "HsQualifier" [ toATerm aa ]) toATerm (HsLetStmt aa) = (AAppl "HsLetStmt" [ toATerm aa ]) fromATerm (AAppl "HsGenerator" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsGenerator aa' ab' ac') fromATerm (AAppl "HsQualifier" [ aa ]) = let aa' = fromATerm aa in (HsQualifier aa') fromATerm (AAppl "HsLetStmt" [ aa ]) = let aa' = fromATerm aa in (HsLetStmt aa') fromATerm u = fromATermError "HsStmt" u instance ATermConvertible HsFieldUpdate where toATerm (HsFieldUpdate aa ab) = (AAppl "HsFieldUpdate" [ toATerm aa,toATerm ab ]) fromATerm (AAppl "HsFieldUpdate" [ aa,ab ]) = let aa' = fromATerm aa ab' = fromATerm ab in (HsFieldUpdate aa' ab') fromATerm u = fromATermError "HsFieldUpdate" u instance ATermConvertible HsAlt where toATerm (HsAlt aa ab ac ad) = (AAppl "HsAlt" [ toATerm aa,toATerm ab,toATerm ac,toATerm ad ]) fromATerm (AAppl "HsAlt" [ aa,ab,ac,ad ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac ad' = fromATerm ad in (HsAlt aa' ab' ac' ad') fromATerm u = fromATermError "HsAlt" u instance ATermConvertible HsGuardedAlts where toATerm (HsUnGuardedAlt aa) = (AAppl "HsUnGuardedAlt" [ toATerm aa ]) toATerm (HsGuardedAlts aa) = (AAppl "HsGuardedAlts" [ toATerm aa ]) fromATerm (AAppl "HsUnGuardedAlt" [ aa ]) = let aa' = fromATerm aa in (HsUnGuardedAlt aa') fromATerm (AAppl "HsGuardedAlts" [ aa ]) = let aa' = fromATerm aa in (HsGuardedAlts aa') fromATerm u = fromATermError "HsGuardedAlts" u instance ATermConvertible HsGuardedAlt where toATerm (HsGuardedAlt aa ab ac) = (AAppl "HsGuardedAlt" [ toATerm aa,toATerm ab,toATerm ac ]) fromATerm (AAppl "HsGuardedAlt" [ aa,ab,ac ]) = let aa' = fromATerm aa ab' = fromATerm ab ac' = fromATerm ac in (HsGuardedAlt aa' ab' ac') fromATerm u = fromATermError "HsGuardedAlt" u -- Imported from other files :-