diff options
Diffstat (limited to 'compiler/GHC/Hs/Instances.hs')
-rw-r--r-- | compiler/GHC/Hs/Instances.hs | 464 |
1 files changed, 236 insertions, 228 deletions
diff --git a/compiler/GHC/Hs/Instances.hs b/compiler/GHC/Hs/Instances.hs index b3a33df43c..ef147e3193 100644 --- a/compiler/GHC/Hs/Instances.hs +++ b/compiler/GHC/Hs/Instances.hs @@ -4,6 +4,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE UndecidableInstances #-} +{-# LANGUAGE ConstraintKinds #-} {-# OPTIONS_GHC -fno-warn-orphans #-} module GHC.Hs.Instances where @@ -27,399 +28,406 @@ import GHC.Hs.Pat import GHC.Hs.ImpExp -- --------------------------------------------------------------------- +-- Data for abstract families. See Note [Abstract families] in GHC.Hs.Extension. +type DataX = (Data XHsWrapper, Data XTcEvBinds) + +-- --------------------------------------------------------------------- -- Data derivations from GHC.Hs----------------------------------------- -- --------------------------------------------------------------------- -- Data derivations from GHC.Hs.Binds ---------------------------------- -- deriving instance (DataIdLR pL pR) => Data (HsLocalBindsLR pL pR) -deriving instance Data (HsLocalBindsLR GhcPs GhcPs) -deriving instance Data (HsLocalBindsLR GhcPs GhcRn) -deriving instance Data (HsLocalBindsLR GhcRn GhcRn) -deriving instance Data (HsLocalBindsLR GhcTc GhcTc) +deriving instance DataX => Data (HsLocalBindsLR GhcPs GhcPs) +deriving instance DataX => Data (HsLocalBindsLR GhcPs GhcRn) +deriving instance DataX => Data (HsLocalBindsLR GhcRn GhcRn) +deriving instance DataX => Data (HsLocalBindsLR GhcTc GhcTc) -- deriving instance (DataIdLR pL pR) => Data (HsValBindsLR pL pR) -deriving instance Data (HsValBindsLR GhcPs GhcPs) -deriving instance Data (HsValBindsLR GhcPs GhcRn) -deriving instance Data (HsValBindsLR GhcRn GhcRn) -deriving instance Data (HsValBindsLR GhcTc GhcTc) +deriving instance DataX => Data (HsValBindsLR GhcPs GhcPs) +deriving instance DataX => Data (HsValBindsLR GhcPs GhcRn) +deriving instance DataX => Data (HsValBindsLR GhcRn GhcRn) +deriving instance DataX => Data (HsValBindsLR GhcTc GhcTc) -- deriving instance (DataIdLR pL pL) => Data (NHsValBindsLR pL) -deriving instance Data (NHsValBindsLR GhcPs) -deriving instance Data (NHsValBindsLR GhcRn) -deriving instance Data (NHsValBindsLR GhcTc) +deriving instance DataX => Data (NHsValBindsLR GhcPs) +deriving instance DataX => Data (NHsValBindsLR GhcRn) +deriving instance DataX => Data (NHsValBindsLR GhcTc) -- deriving instance (DataIdLR pL pR) => Data (HsBindLR pL pR) -deriving instance Data (HsBindLR GhcPs GhcPs) -deriving instance Data (HsBindLR GhcPs GhcRn) -deriving instance Data (HsBindLR GhcRn GhcRn) -deriving instance Data (HsBindLR GhcTc GhcTc) +deriving instance DataX => Data (HsBindLR GhcPs GhcPs) +deriving instance DataX => Data (HsBindLR GhcPs GhcRn) +deriving instance DataX => Data (HsBindLR GhcRn GhcRn) +deriving instance DataX => Data (HsBindLR GhcTc GhcTc) -- deriving instance (DataId p) => Data (ABExport p) -deriving instance Data (ABExport GhcPs) -deriving instance Data (ABExport GhcRn) -deriving instance Data (ABExport GhcTc) +deriving instance DataX => Data (ABExport GhcPs) +deriving instance DataX => Data (ABExport GhcRn) +deriving instance DataX => Data (ABExport GhcTc) -- deriving instance (DataIdLR pL pR) => Data (PatSynBind pL pR) -deriving instance Data (PatSynBind GhcPs GhcPs) -deriving instance Data (PatSynBind GhcPs GhcRn) -deriving instance Data (PatSynBind GhcRn GhcRn) -deriving instance Data (PatSynBind GhcTc GhcTc) +deriving instance DataX => Data (PatSynBind GhcPs GhcPs) +deriving instance DataX => Data (PatSynBind GhcPs GhcRn) +deriving instance DataX => Data (PatSynBind GhcRn GhcRn) +deriving instance DataX => Data (PatSynBind GhcTc GhcTc) -- deriving instance (DataIdLR p p) => Data (HsIPBinds p) -deriving instance Data (HsIPBinds GhcPs) -deriving instance Data (HsIPBinds GhcRn) -deriving instance Data (HsIPBinds GhcTc) +deriving instance DataX => Data (HsIPBinds GhcPs) +deriving instance DataX => Data (HsIPBinds GhcRn) +deriving instance DataX => Data (HsIPBinds GhcTc) -- deriving instance (DataIdLR p p) => Data (IPBind p) -deriving instance Data (IPBind GhcPs) -deriving instance Data (IPBind GhcRn) -deriving instance Data (IPBind GhcTc) +deriving instance DataX => Data (IPBind GhcPs) +deriving instance DataX => Data (IPBind GhcRn) +deriving instance DataX => Data (IPBind GhcTc) -- deriving instance (DataIdLR p p) => Data (Sig p) -deriving instance Data (Sig GhcPs) -deriving instance Data (Sig GhcRn) -deriving instance Data (Sig GhcTc) +deriving instance DataX => Data (Sig GhcPs) +deriving instance DataX => Data (Sig GhcRn) +deriving instance DataX => Data (Sig GhcTc) -- deriving instance (DataId p) => Data (FixitySig p) -deriving instance Data (FixitySig GhcPs) -deriving instance Data (FixitySig GhcRn) -deriving instance Data (FixitySig GhcTc) +deriving instance DataX => Data (FixitySig GhcPs) +deriving instance DataX => Data (FixitySig GhcRn) +deriving instance DataX => Data (FixitySig GhcTc) -- deriving instance (DataId p) => Data (StandaloneKindSig p) -deriving instance Data (StandaloneKindSig GhcPs) -deriving instance Data (StandaloneKindSig GhcRn) -deriving instance Data (StandaloneKindSig GhcTc) +deriving instance DataX => Data (StandaloneKindSig GhcPs) +deriving instance DataX => Data (StandaloneKindSig GhcRn) +deriving instance DataX => Data (StandaloneKindSig GhcTc) -- deriving instance (DataIdLR p p) => Data (HsPatSynDir p) -deriving instance Data (HsPatSynDir GhcPs) -deriving instance Data (HsPatSynDir GhcRn) -deriving instance Data (HsPatSynDir GhcTc) +deriving instance DataX => Data (HsPatSynDir GhcPs) +deriving instance DataX => Data (HsPatSynDir GhcRn) +deriving instance DataX => Data (HsPatSynDir GhcTc) + +deriving instance DataX => Data TcSpecPrag +deriving instance DataX => Data TcSpecPrags -- --------------------------------------------------------------------- -- Data derivations from GHC.Hs.Decls ---------------------------------- -- deriving instance (DataIdLR p p) => Data (HsDecl p) -deriving instance Data (HsDecl GhcPs) -deriving instance Data (HsDecl GhcRn) -deriving instance Data (HsDecl GhcTc) +deriving instance DataX => Data (HsDecl GhcPs) +deriving instance DataX => Data (HsDecl GhcRn) +deriving instance DataX => Data (HsDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (HsGroup p) -deriving instance Data (HsGroup GhcPs) -deriving instance Data (HsGroup GhcRn) -deriving instance Data (HsGroup GhcTc) +deriving instance DataX => Data (HsGroup GhcPs) +deriving instance DataX => Data (HsGroup GhcRn) +deriving instance DataX => Data (HsGroup GhcTc) -- deriving instance (DataIdLR p p) => Data (SpliceDecl p) -deriving instance Data (SpliceDecl GhcPs) -deriving instance Data (SpliceDecl GhcRn) -deriving instance Data (SpliceDecl GhcTc) +deriving instance DataX => Data (SpliceDecl GhcPs) +deriving instance DataX => Data (SpliceDecl GhcRn) +deriving instance DataX => Data (SpliceDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (TyClDecl p) -deriving instance Data (TyClDecl GhcPs) -deriving instance Data (TyClDecl GhcRn) -deriving instance Data (TyClDecl GhcTc) +deriving instance DataX => Data (TyClDecl GhcPs) +deriving instance DataX => Data (TyClDecl GhcRn) +deriving instance DataX => Data (TyClDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (TyClGroup p) -deriving instance Data (TyClGroup GhcPs) -deriving instance Data (TyClGroup GhcRn) -deriving instance Data (TyClGroup GhcTc) +deriving instance DataX => Data (TyClGroup GhcPs) +deriving instance DataX => Data (TyClGroup GhcRn) +deriving instance DataX => Data (TyClGroup GhcTc) -- deriving instance (DataIdLR p p) => Data (FamilyResultSig p) -deriving instance Data (FamilyResultSig GhcPs) -deriving instance Data (FamilyResultSig GhcRn) -deriving instance Data (FamilyResultSig GhcTc) +deriving instance DataX => Data (FamilyResultSig GhcPs) +deriving instance DataX => Data (FamilyResultSig GhcRn) +deriving instance DataX => Data (FamilyResultSig GhcTc) -- deriving instance (DataIdLR p p) => Data (FamilyDecl p) -deriving instance Data (FamilyDecl GhcPs) -deriving instance Data (FamilyDecl GhcRn) -deriving instance Data (FamilyDecl GhcTc) +deriving instance DataX => Data (FamilyDecl GhcPs) +deriving instance DataX => Data (FamilyDecl GhcRn) +deriving instance DataX => Data (FamilyDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (InjectivityAnn p) -deriving instance Data (InjectivityAnn GhcPs) -deriving instance Data (InjectivityAnn GhcRn) -deriving instance Data (InjectivityAnn GhcTc) +deriving instance DataX => Data (InjectivityAnn GhcPs) +deriving instance DataX => Data (InjectivityAnn GhcRn) +deriving instance DataX => Data (InjectivityAnn GhcTc) -- deriving instance (DataIdLR p p) => Data (FamilyInfo p) -deriving instance Data (FamilyInfo GhcPs) -deriving instance Data (FamilyInfo GhcRn) -deriving instance Data (FamilyInfo GhcTc) +deriving instance DataX => Data (FamilyInfo GhcPs) +deriving instance DataX => Data (FamilyInfo GhcRn) +deriving instance DataX => Data (FamilyInfo GhcTc) -- deriving instance (DataIdLR p p) => Data (HsDataDefn p) -deriving instance Data (HsDataDefn GhcPs) -deriving instance Data (HsDataDefn GhcRn) -deriving instance Data (HsDataDefn GhcTc) +deriving instance DataX => Data (HsDataDefn GhcPs) +deriving instance DataX => Data (HsDataDefn GhcRn) +deriving instance DataX => Data (HsDataDefn GhcTc) -- deriving instance (DataIdLR p p) => Data (HsDerivingClause p) -deriving instance Data (HsDerivingClause GhcPs) -deriving instance Data (HsDerivingClause GhcRn) -deriving instance Data (HsDerivingClause GhcTc) +deriving instance DataX => Data (HsDerivingClause GhcPs) +deriving instance DataX => Data (HsDerivingClause GhcRn) +deriving instance DataX => Data (HsDerivingClause GhcTc) -- deriving instance (DataIdLR p p) => Data (ConDecl p) -deriving instance Data (ConDecl GhcPs) -deriving instance Data (ConDecl GhcRn) -deriving instance Data (ConDecl GhcTc) +deriving instance DataX => Data (ConDecl GhcPs) +deriving instance DataX => Data (ConDecl GhcRn) +deriving instance DataX => Data (ConDecl GhcTc) -- deriving instance DataIdLR p p => Data (TyFamInstDecl p) -deriving instance Data (TyFamInstDecl GhcPs) -deriving instance Data (TyFamInstDecl GhcRn) -deriving instance Data (TyFamInstDecl GhcTc) +deriving instance DataX => Data (TyFamInstDecl GhcPs) +deriving instance DataX => Data (TyFamInstDecl GhcRn) +deriving instance DataX => Data (TyFamInstDecl GhcTc) -- deriving instance DataIdLR p p => Data (DataFamInstDecl p) -deriving instance Data (DataFamInstDecl GhcPs) -deriving instance Data (DataFamInstDecl GhcRn) -deriving instance Data (DataFamInstDecl GhcTc) +deriving instance DataX => Data (DataFamInstDecl GhcPs) +deriving instance DataX => Data (DataFamInstDecl GhcRn) +deriving instance DataX => Data (DataFamInstDecl GhcTc) -- deriving instance (DataIdLR p p,Data rhs)=>Data (FamEqn p rhs) -deriving instance Data rhs => Data (FamEqn GhcPs rhs) -deriving instance Data rhs => Data (FamEqn GhcRn rhs) -deriving instance Data rhs => Data (FamEqn GhcTc rhs) +deriving instance DataX => Data rhs => Data (FamEqn GhcPs rhs) +deriving instance DataX => Data rhs => Data (FamEqn GhcRn rhs) +deriving instance DataX => Data rhs => Data (FamEqn GhcTc rhs) -- deriving instance (DataIdLR p p) => Data (ClsInstDecl p) -deriving instance Data (ClsInstDecl GhcPs) -deriving instance Data (ClsInstDecl GhcRn) -deriving instance Data (ClsInstDecl GhcTc) +deriving instance DataX => Data (ClsInstDecl GhcPs) +deriving instance DataX => Data (ClsInstDecl GhcRn) +deriving instance DataX => Data (ClsInstDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (InstDecl p) -deriving instance Data (InstDecl GhcPs) -deriving instance Data (InstDecl GhcRn) -deriving instance Data (InstDecl GhcTc) +deriving instance DataX => Data (InstDecl GhcPs) +deriving instance DataX => Data (InstDecl GhcRn) +deriving instance DataX => Data (InstDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (DerivDecl p) -deriving instance Data (DerivDecl GhcPs) -deriving instance Data (DerivDecl GhcRn) -deriving instance Data (DerivDecl GhcTc) +deriving instance DataX => Data (DerivDecl GhcPs) +deriving instance DataX => Data (DerivDecl GhcRn) +deriving instance DataX => Data (DerivDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (DerivStrategy p) -deriving instance Data (DerivStrategy GhcPs) -deriving instance Data (DerivStrategy GhcRn) -deriving instance Data (DerivStrategy GhcTc) +deriving instance DataX => Data (DerivStrategy GhcPs) +deriving instance DataX => Data (DerivStrategy GhcRn) +deriving instance DataX => Data (DerivStrategy GhcTc) -- deriving instance (DataIdLR p p) => Data (DefaultDecl p) -deriving instance Data (DefaultDecl GhcPs) -deriving instance Data (DefaultDecl GhcRn) -deriving instance Data (DefaultDecl GhcTc) +deriving instance DataX => Data (DefaultDecl GhcPs) +deriving instance DataX => Data (DefaultDecl GhcRn) +deriving instance DataX => Data (DefaultDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (ForeignDecl p) -deriving instance Data (ForeignDecl GhcPs) -deriving instance Data (ForeignDecl GhcRn) -deriving instance Data (ForeignDecl GhcTc) +deriving instance DataX => Data (ForeignDecl GhcPs) +deriving instance DataX => Data (ForeignDecl GhcRn) +deriving instance DataX => Data (ForeignDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (RuleDecls p) -deriving instance Data (RuleDecls GhcPs) -deriving instance Data (RuleDecls GhcRn) -deriving instance Data (RuleDecls GhcTc) +deriving instance DataX => Data (RuleDecls GhcPs) +deriving instance DataX => Data (RuleDecls GhcRn) +deriving instance DataX => Data (RuleDecls GhcTc) -- deriving instance (DataIdLR p p) => Data (RuleDecl p) -deriving instance Data (RuleDecl GhcPs) -deriving instance Data (RuleDecl GhcRn) -deriving instance Data (RuleDecl GhcTc) +deriving instance DataX => Data (RuleDecl GhcPs) +deriving instance DataX => Data (RuleDecl GhcRn) +deriving instance DataX => Data (RuleDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (RuleBndr p) -deriving instance Data (RuleBndr GhcPs) -deriving instance Data (RuleBndr GhcRn) -deriving instance Data (RuleBndr GhcTc) +deriving instance DataX => Data (RuleBndr GhcPs) +deriving instance DataX => Data (RuleBndr GhcRn) +deriving instance DataX => Data (RuleBndr GhcTc) -- deriving instance (DataId p) => Data (WarnDecls p) -deriving instance Data (WarnDecls GhcPs) -deriving instance Data (WarnDecls GhcRn) -deriving instance Data (WarnDecls GhcTc) +deriving instance DataX => Data (WarnDecls GhcPs) +deriving instance DataX => Data (WarnDecls GhcRn) +deriving instance DataX => Data (WarnDecls GhcTc) -- deriving instance (DataId p) => Data (WarnDecl p) -deriving instance Data (WarnDecl GhcPs) -deriving instance Data (WarnDecl GhcRn) -deriving instance Data (WarnDecl GhcTc) +deriving instance DataX => Data (WarnDecl GhcPs) +deriving instance DataX => Data (WarnDecl GhcRn) +deriving instance DataX => Data (WarnDecl GhcTc) -- deriving instance (DataIdLR p p) => Data (AnnDecl p) -deriving instance Data (AnnDecl GhcPs) -deriving instance Data (AnnDecl GhcRn) -deriving instance Data (AnnDecl GhcTc) +deriving instance DataX => Data (AnnDecl GhcPs) +deriving instance DataX => Data (AnnDecl GhcRn) +deriving instance DataX => Data (AnnDecl GhcTc) -- deriving instance (DataId p) => Data (RoleAnnotDecl p) -deriving instance Data (RoleAnnotDecl GhcPs) -deriving instance Data (RoleAnnotDecl GhcRn) -deriving instance Data (RoleAnnotDecl GhcTc) +deriving instance DataX => Data (RoleAnnotDecl GhcPs) +deriving instance DataX => Data (RoleAnnotDecl GhcRn) +deriving instance DataX => Data (RoleAnnotDecl GhcTc) -- --------------------------------------------------------------------- -- Data derivations from GHC.Hs.Expr ----------------------------------- -- deriving instance (DataIdLR p p) => Data (SyntaxExpr p) -deriving instance Data (SyntaxExpr GhcPs) -deriving instance Data (SyntaxExpr GhcRn) -deriving instance Data (SyntaxExpr GhcTc) +deriving instance DataX => Data SyntaxExprTc -- deriving instance (DataIdLR p p) => Data (HsExpr p) -deriving instance Data (HsExpr GhcPs) -deriving instance Data (HsExpr GhcRn) -deriving instance Data (HsExpr GhcTc) +deriving instance DataX => Data (HsExpr GhcPs) +deriving instance DataX => Data (HsExpr GhcRn) +deriving instance DataX => Data (HsExpr GhcTc) -- deriving instance (DataIdLR p p) => Data (HsTupArg p) -deriving instance Data (HsTupArg GhcPs) -deriving instance Data (HsTupArg GhcRn) -deriving instance Data (HsTupArg GhcTc) +deriving instance DataX => Data (HsTupArg GhcPs) +deriving instance DataX => Data (HsTupArg GhcRn) +deriving instance DataX => Data (HsTupArg GhcTc) -- deriving instance (DataIdLR p p) => Data (HsCmd p) -deriving instance Data (HsCmd GhcPs) -deriving instance Data (HsCmd GhcRn) -deriving instance Data (HsCmd GhcTc) +deriving instance DataX => Data (HsCmd GhcPs) +deriving instance DataX => Data (HsCmd GhcRn) +deriving instance DataX => Data (HsCmd GhcTc) -- deriving instance (DataIdLR p p) => Data (HsCmdTop p) -deriving instance Data (HsCmdTop GhcPs) -deriving instance Data (HsCmdTop GhcRn) -deriving instance Data (HsCmdTop GhcTc) +deriving instance DataX => Data (HsCmdTop GhcPs) +deriving instance DataX => Data (HsCmdTop GhcRn) +deriving instance DataX => Data (HsCmdTop GhcTc) -- deriving instance (DataIdLR p p,Data body) => Data (MatchGroup p body) -deriving instance (Data body) => Data (MatchGroup GhcPs body) -deriving instance (Data body) => Data (MatchGroup GhcRn body) -deriving instance (Data body) => Data (MatchGroup GhcTc body) +deriving instance (DataX, Data body) => Data (MatchGroup GhcPs body) +deriving instance (DataX, Data body) => Data (MatchGroup GhcRn body) +deriving instance (DataX, Data body) => Data (MatchGroup GhcTc body) -- deriving instance (DataIdLR p p,Data body) => Data (Match p body) -deriving instance (Data body) => Data (Match GhcPs body) -deriving instance (Data body) => Data (Match GhcRn body) -deriving instance (Data body) => Data (Match GhcTc body) +deriving instance (DataX, Data body) => Data (Match GhcPs body) +deriving instance (DataX, Data body) => Data (Match GhcRn body) +deriving instance (DataX, Data body) => Data (Match GhcTc body) -- deriving instance (DataIdLR p p,Data body) => Data (GRHSs p body) -deriving instance (Data body) => Data (GRHSs GhcPs body) -deriving instance (Data body) => Data (GRHSs GhcRn body) -deriving instance (Data body) => Data (GRHSs GhcTc body) +deriving instance (DataX, Data body) => Data (GRHSs GhcPs body) +deriving instance (DataX, Data body) => Data (GRHSs GhcRn body) +deriving instance (DataX, Data body) => Data (GRHSs GhcTc body) -- deriving instance (DataIdLR p p,Data body) => Data (GRHS p body) -deriving instance (Data body) => Data (GRHS GhcPs body) -deriving instance (Data body) => Data (GRHS GhcRn body) -deriving instance (Data body) => Data (GRHS GhcTc body) +deriving instance (DataX, Data body) => Data (GRHS GhcPs body) +deriving instance (DataX, Data body) => Data (GRHS GhcRn body) +deriving instance (DataX, Data body) => Data (GRHS GhcTc body) -- deriving instance (DataIdLR p p,Data body) => Data (StmtLR p p body) -deriving instance (Data body) => Data (StmtLR GhcPs GhcPs body) -deriving instance (Data body) => Data (StmtLR GhcPs GhcRn body) -deriving instance (Data body) => Data (StmtLR GhcRn GhcRn body) -deriving instance (Data body) => Data (StmtLR GhcTc GhcTc body) +deriving instance (DataX, Data body) => Data (StmtLR GhcPs GhcPs body) +deriving instance (DataX, Data body) => Data (StmtLR GhcPs GhcRn body) +deriving instance (DataX, Data body) => Data (StmtLR GhcRn GhcRn body) +deriving instance (DataX, Data body) => Data (StmtLR GhcTc GhcTc body) -deriving instance Data RecStmtTc +deriving instance DataX => Data RecStmtTc +deriving instance DataX => Data RecordUpdTc +deriving instance (DataX, Data (body GhcTc), Typeable body) => Data (HsWrap body) -- deriving instance (DataIdLR p p) => Data (ParStmtBlock p p) -deriving instance Data (ParStmtBlock GhcPs GhcPs) -deriving instance Data (ParStmtBlock GhcPs GhcRn) -deriving instance Data (ParStmtBlock GhcRn GhcRn) -deriving instance Data (ParStmtBlock GhcTc GhcTc) +deriving instance DataX => Data (ParStmtBlock GhcPs GhcPs) +deriving instance DataX => Data (ParStmtBlock GhcPs GhcRn) +deriving instance DataX => Data (ParStmtBlock GhcRn GhcRn) +deriving instance DataX => Data (ParStmtBlock GhcTc GhcTc) -- deriving instance (DataIdLR p p) => Data (ApplicativeArg p) -deriving instance Data (ApplicativeArg GhcPs) -deriving instance Data (ApplicativeArg GhcRn) -deriving instance Data (ApplicativeArg GhcTc) +deriving instance DataX => Data (ApplicativeArg GhcPs) +deriving instance DataX => Data (ApplicativeArg GhcRn) +deriving instance DataX => Data (ApplicativeArg GhcTc) -- deriving instance (DataIdLR p p) => Data (HsSplice p) -deriving instance Data (HsSplice GhcPs) -deriving instance Data (HsSplice GhcRn) -deriving instance Data (HsSplice GhcTc) +deriving instance DataX => Data (HsSplice GhcPs) +deriving instance DataX => Data (HsSplice GhcRn) +deriving instance DataX => Data (HsSplice GhcTc) -- deriving instance (DataIdLR p p) => Data (HsSplicedThing p) -deriving instance Data (HsSplicedThing GhcPs) -deriving instance Data (HsSplicedThing GhcRn) -deriving instance Data (HsSplicedThing GhcTc) +deriving instance DataX => Data (HsSplicedThing GhcPs) +deriving instance DataX => Data (HsSplicedThing GhcRn) +deriving instance DataX => Data (HsSplicedThing GhcTc) -- deriving instance (DataIdLR p p) => Data (HsBracket p) -deriving instance Data (HsBracket GhcPs) -deriving instance Data (HsBracket GhcRn) -deriving instance Data (HsBracket GhcTc) +deriving instance DataX => Data (HsBracket GhcPs) +deriving instance DataX => Data (HsBracket GhcRn) +deriving instance DataX => Data (HsBracket GhcTc) -- deriving instance (DataIdLR p p) => Data (ArithSeqInfo p) -deriving instance Data (ArithSeqInfo GhcPs) -deriving instance Data (ArithSeqInfo GhcRn) -deriving instance Data (ArithSeqInfo GhcTc) +deriving instance DataX => Data (ArithSeqInfo GhcPs) +deriving instance DataX => Data (ArithSeqInfo GhcRn) +deriving instance DataX => Data (ArithSeqInfo GhcTc) -deriving instance Data RecordConTc -deriving instance Data CmdTopTc -deriving instance Data PendingRnSplice -deriving instance Data PendingTcSplice +deriving instance DataX => Data RecordConTc +deriving instance DataX => Data CmdTopTc +deriving instance DataX => Data PendingRnSplice +deriving instance DataX => Data PendingTcSplice -- --------------------------------------------------------------------- -- Data derivations from GHC.Hs.Lit ------------------------------------ -- deriving instance (DataId p) => Data (HsLit p) -deriving instance Data (HsLit GhcPs) -deriving instance Data (HsLit GhcRn) -deriving instance Data (HsLit GhcTc) +deriving instance DataX => Data (HsLit GhcPs) +deriving instance DataX => Data (HsLit GhcRn) +deriving instance DataX => Data (HsLit GhcTc) -- deriving instance (DataIdLR p p) => Data (HsOverLit p) -deriving instance Data (HsOverLit GhcPs) -deriving instance Data (HsOverLit GhcRn) -deriving instance Data (HsOverLit GhcTc) +deriving instance DataX => Data (HsOverLit GhcPs) +deriving instance DataX => Data (HsOverLit GhcRn) +deriving instance DataX => Data (HsOverLit GhcTc) -- --------------------------------------------------------------------- -- Data derivations from GHC.Hs.Pat ------------------------------------ -- deriving instance (DataIdLR p p) => Data (Pat p) -deriving instance Data (Pat GhcPs) -deriving instance Data (Pat GhcRn) -deriving instance Data (Pat GhcTc) +deriving instance DataX => Data (Pat GhcPs) +deriving instance DataX => Data (Pat GhcRn) +deriving instance DataX => Data (Pat GhcTc) -deriving instance Data ListPatTc +deriving instance DataX => Data ListPatTc -- deriving instance (DataIdLR p p, Data body) => Data (HsRecFields p body) -deriving instance (Data body) => Data (HsRecFields GhcPs body) -deriving instance (Data body) => Data (HsRecFields GhcRn body) -deriving instance (Data body) => Data (HsRecFields GhcTc body) +deriving instance (DataX, Data body) => Data (HsRecFields GhcPs body) +deriving instance (DataX, Data body) => Data (HsRecFields GhcRn body) +deriving instance (DataX, Data body) => Data (HsRecFields GhcTc body) -- --------------------------------------------------------------------- -- Data derivations from GHC.Hs.Types ---------------------------------- -- deriving instance (DataIdLR p p) => Data (LHsQTyVars p) -deriving instance Data (LHsQTyVars GhcPs) -deriving instance Data (LHsQTyVars GhcRn) -deriving instance Data (LHsQTyVars GhcTc) +deriving instance DataX => Data (LHsQTyVars GhcPs) +deriving instance DataX => Data (LHsQTyVars GhcRn) +deriving instance DataX => Data (LHsQTyVars GhcTc) -- deriving instance (DataIdLR p p, Data thing) =>Data (HsImplicitBndrs p thing) -deriving instance (Data thing) => Data (HsImplicitBndrs GhcPs thing) -deriving instance (Data thing) => Data (HsImplicitBndrs GhcRn thing) -deriving instance (Data thing) => Data (HsImplicitBndrs GhcTc thing) +deriving instance (DataX, Data thing) => Data (HsImplicitBndrs GhcPs thing) +deriving instance (DataX, Data thing) => Data (HsImplicitBndrs GhcRn thing) +deriving instance (DataX, Data thing) => Data (HsImplicitBndrs GhcTc thing) -- deriving instance (DataIdLR p p, Data thing) =>Data (HsWildCardBndrs p thing) -deriving instance (Data thing) => Data (HsWildCardBndrs GhcPs thing) -deriving instance (Data thing) => Data (HsWildCardBndrs GhcRn thing) -deriving instance (Data thing) => Data (HsWildCardBndrs GhcTc thing) +deriving instance (DataX, Data thing) => Data (HsWildCardBndrs GhcPs thing) +deriving instance (DataX, Data thing) => Data (HsWildCardBndrs GhcRn thing) +deriving instance (DataX, Data thing) => Data (HsWildCardBndrs GhcTc thing) -- deriving instance (DataIdLR p p) => Data (HsTyVarBndr p) -deriving instance Data (HsTyVarBndr GhcPs) -deriving instance Data (HsTyVarBndr GhcRn) -deriving instance Data (HsTyVarBndr GhcTc) +deriving instance DataX => Data (HsTyVarBndr GhcPs) +deriving instance DataX => Data (HsTyVarBndr GhcRn) +deriving instance DataX => Data (HsTyVarBndr GhcTc) -- deriving instance (DataIdLR p p) => Data (HsType p) -deriving instance Data (HsType GhcPs) -deriving instance Data (HsType GhcRn) -deriving instance Data (HsType GhcTc) +deriving instance DataX => Data (HsType GhcPs) +deriving instance DataX => Data (HsType GhcRn) +deriving instance DataX => Data (HsType GhcTc) -deriving instance Data (LHsTypeArg GhcPs) -deriving instance Data (LHsTypeArg GhcRn) -deriving instance Data (LHsTypeArg GhcTc) +deriving instance DataX => Data (LHsTypeArg GhcPs) +deriving instance DataX => Data (LHsTypeArg GhcRn) +deriving instance DataX => Data (LHsTypeArg GhcTc) -- deriving instance (DataIdLR p p) => Data (ConDeclField p) -deriving instance Data (ConDeclField GhcPs) -deriving instance Data (ConDeclField GhcRn) -deriving instance Data (ConDeclField GhcTc) +deriving instance DataX => Data (ConDeclField GhcPs) +deriving instance DataX => Data (ConDeclField GhcRn) +deriving instance DataX => Data (ConDeclField GhcTc) -- deriving instance (DataId p) => Data (FieldOcc p) -deriving instance Data (FieldOcc GhcPs) -deriving instance Data (FieldOcc GhcRn) -deriving instance Data (FieldOcc GhcTc) +deriving instance DataX => Data (FieldOcc GhcPs) +deriving instance DataX => Data (FieldOcc GhcRn) +deriving instance DataX => Data (FieldOcc GhcTc) -- deriving instance DataId p => Data (AmbiguousFieldOcc p) -deriving instance Data (AmbiguousFieldOcc GhcPs) -deriving instance Data (AmbiguousFieldOcc GhcRn) -deriving instance Data (AmbiguousFieldOcc GhcTc) +deriving instance DataX => Data (AmbiguousFieldOcc GhcPs) +deriving instance DataX => Data (AmbiguousFieldOcc GhcRn) +deriving instance DataX => Data (AmbiguousFieldOcc GhcTc) -- deriving instance (DataId name) => Data (ImportDecl name) -deriving instance Data (ImportDecl GhcPs) -deriving instance Data (ImportDecl GhcRn) -deriving instance Data (ImportDecl GhcTc) +deriving instance DataX => Data (ImportDecl GhcPs) +deriving instance DataX => Data (ImportDecl GhcRn) +deriving instance DataX => Data (ImportDecl GhcTc) -- deriving instance (DataId name) => Data (IE name) -deriving instance Data (IE GhcPs) -deriving instance Data (IE GhcRn) -deriving instance Data (IE GhcTc) +deriving instance DataX => Data (IE GhcPs) +deriving instance DataX => Data (IE GhcRn) +deriving instance DataX => Data (IE GhcTc) -- deriving instance (Eq name, Eq (IdP name)) => Eq (IE name) -deriving instance Eq (IE GhcPs) -deriving instance Eq (IE GhcRn) -deriving instance Eq (IE GhcTc) +deriving instance DataX => Eq (IE GhcPs) +deriving instance DataX => Eq (IE GhcRn) +deriving instance DataX => Eq (IE GhcTc) -- --------------------------------------------------------------------- |