packages feed

ghc-exactprint 0.5.4.0 → 0.5.5.0

raw patch · 7 files changed

+81/−33 lines, 7 filesdep ~ghc-exactprintPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: ghc-exactprint

API changes (from Hackage documentation)

- Language.Haskell.GHC.ExactPrint.Annotater: instance (Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.HsRecField name (HsExpr.LHsExpr name))
- Language.Haskell.GHC.ExactPrint.Annotater: instance (Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.HsRecField name (HsPat.LPat name))
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.ConDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.FamilyDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.FamilyResultSig name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyFamDefltEqn name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyFamInstEqn name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Outputable.OutputableBndr name, OccName.HasOccName name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.Pat name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate body) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.Stmt name (SrcLoc.Located body))
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.HsBind name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.HsLocalBinds name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.IPBind name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.Sig name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.AnnDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.ClsInstDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.DataFamInstDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.DefaultDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.DerivDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.ForeignDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.HsDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.InstDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.RuleBndr name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.RuleDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.RuleDecls name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.SpliceDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyClDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyFamInstDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.VectDecl name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsCmd name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsCmdTop name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsExpr name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsSplice name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsTupArg name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.ParStmtBlock name name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.HsRecUpdField name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.ConDeclField name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.HsAppType name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.HsTyVarBndr name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.HsType name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (Language.Haskell.GHC.ExactPrint.Annotater.ResTyGADTHook name)
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsExpr.ExprLStmt name]
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsTypes.LConDeclField name]
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsTypes.LHsSigType name]
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsTypes.LHsType name]
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [SrcLoc.Located (HsExpr.StmtLR name name (HsExpr.LHsCmd name))]
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate body) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.GRHS name (SrcLoc.Located body))
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate body) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.Match name (SrcLoc.Located body))
- Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, Outputable.OutputableBndr name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate body) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [SrcLoc.Located (HsExpr.Match name (SrcLoc.Located body))]
- Language.Haskell.GHC.ExactPrint.Annotater: instance Outputable.OutputableBndr name => Outputable.Outputable (Language.Haskell.GHC.ExactPrint.Annotater.ResTyGADTHook name)
- Language.Haskell.GHC.ExactPrint.GhcInterim: commentToAnnotation :: Located Token -> Located AnnotationComment
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnOpen :: SourceText -> String -> Annotated ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternalSourceText :: SrcSpan -> SourceText -> String -> Annotated ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markSourceText :: SourceText -> String -> Annotated ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: sourceTextToString :: SourceText -> String -> String
+ Language.Haskell.GHC.ExactPrint.Annotater: instance (PlaceHolder.DataId name, OccName.HasOccName name, Language.Haskell.GHC.ExactPrint.Annotater.Annotate name) => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsImpExp.IEWrappedName name)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.HsBind RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.HsLocalBinds RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.IPBind RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsBinds.Sig RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.AnnDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.ClsInstDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.ConDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.DataFamInstDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.DefaultDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.DerivDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.FamilyDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.FamilyResultSig RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.ForeignDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.HsDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.HsDerivingClause RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.InstDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.RuleBndr RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.RuleDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.RuleDecls RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.SpliceDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyClDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyFamDefltEqn RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyFamInstDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.TyFamInstEqn RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsDecls.VectDecl RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsCmd RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsCmdTop RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsExpr RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsSplice RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.HsTupArg RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.ParStmtBlock RdrName.RdrName RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.HsRecField RdrName.RdrName (HsExpr.LHsExpr RdrName.RdrName))
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.HsRecField RdrName.RdrName (HsPat.LPat RdrName.RdrName))
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.HsRecUpdField RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsPat.Pat RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.ConDeclField RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.HsAppType RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.HsTyVarBndr RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsTypes.HsType RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate (Language.Haskell.GHC.ExactPrint.Annotater.ResTyGADTHook RdrName.RdrName)
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate BasicTypes.DerivStrategy
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsDecls.LHsDerivingClause RdrName.RdrName]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsExpr.ExprLStmt RdrName.RdrName]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsTypes.LConDeclField RdrName.RdrName]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsTypes.LHsSigType RdrName.RdrName]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate [HsTypes.LHsType RdrName.RdrName]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate [SrcLoc.Located (HsExpr.StmtLR RdrName.RdrName RdrName.RdrName (HsExpr.LHsCmd RdrName.RdrName))]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate body => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.GRHS RdrName.RdrName (SrcLoc.Located body))
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate body => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.Match RdrName.RdrName (SrcLoc.Located body))
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate body => Language.Haskell.GHC.ExactPrint.Annotater.Annotate (HsExpr.Stmt RdrName.RdrName (SrcLoc.Located body))
+ Language.Haskell.GHC.ExactPrint.Annotater: instance Language.Haskell.GHC.ExactPrint.Annotater.Annotate body => Language.Haskell.GHC.ExactPrint.Annotater.Annotate [SrcLoc.Located (HsExpr.Match RdrName.RdrName (SrcLoc.Located body))]
+ Language.Haskell.GHC.ExactPrint.Annotater: instance PlaceHolder.OutputableBndrId name => Outputable.Outputable (Language.Haskell.GHC.ExactPrint.Annotater.ResTyGADTHook name)
+ Language.Haskell.GHC.ExactPrint.Transform: instance Control.Monad.Trans.Class.MonadTrans Language.Haskell.GHC.ExactPrint.Transform.TransformT
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_a14RT. MonadFree AnnotationF m_a14RT => [AnnKeywordId] -> m_a14RT ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: annotationsToComments :: forall m_aGag. MonadFree AnnotationF m_aGag => [AnnKeywordId] -> m_aGag ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_a14PX. MonadFree AnnotationF m_a14PX => AnnKeywordId -> m_a14PX Int
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: countAnns :: forall m_aG8e. MonadFree AnnotationF m_aG8e => AnnKeywordId -> m_aG8e Int
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_a14Re. MonadFree AnnotationF m_a14Re => SrcSpan -> AnnKeywordId -> m_a14Re SrcSpan
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: getSrcSpanForKw :: forall m_aG9z. MonadFree AnnotationF m_aG9z => SrcSpan -> AnnKeywordId -> m_aG9z SrcSpan
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_a14Uq. MonadFree AnnotationF m_a14Uq => Set AstContext -> Annotated () -> Annotated () -> m_a14Uq ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: ifInContext :: forall m_aGcV. MonadFree AnnotationF m_aGcV => Set AstContext -> Annotated () -> Annotated () -> m_aGcV ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_a14Wm. MonadFree AnnotationF m_a14Wm => AnnKeywordId -> AnnKeywordId -> m_a14Wm ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markAnnBeforeAnn :: forall m_aGeX. MonadFree AnnotationF m_aGeX => AnnKeywordId -> AnnKeywordId -> m_aGeX ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_a14dB. MonadFree AnnotationF m_a14dB => m_a14dB ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markEOF :: forall m_aFkQ. MonadFree AnnotationF m_aFkQ => m_aFkQ ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_a14MG. MonadFree AnnotationF m_a14MG => SrcSpan -> AnnKeywordId -> String -> m_a14MG ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markExternal :: forall m_aG4N. MonadFree AnnotationF m_aG4N => SrcSpan -> AnnKeywordId -> String -> m_aG4N ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_a14M5. MonadFree AnnotationF m_a14M5 => AnnKeywordId -> m_a14M5 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markInside :: forall m_aG4a. MonadFree AnnotationF m_aG4a => AnnKeywordId -> m_aG4a ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_a14Nn. MonadFree AnnotationF m_a14Nn => AnnKeywordId -> m_a14Nn ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markMany :: forall m_aG5w. MonadFree AnnotationF m_aG5w => AnnKeywordId -> m_aG5w ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_a14NY. MonadFree AnnotationF m_a14NY => AnnKeywordId -> m_a14NY ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markManyOptional :: forall m_aG69. MonadFree AnnotationF m_aG69 => AnnKeywordId -> m_aG69 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_a14Oz. MonadFree AnnotationF m_a14Oz => AnnKeywordId -> Int -> Maybe String -> m_a14Oz ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrim :: forall m_aG6M. MonadFree AnnotationF m_aG6M => AnnKeywordId -> Int -> Maybe String -> m_aG6M ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_a14Pg. MonadFree AnnotationF m_a14Pg => AnnKeywordId -> Int -> Maybe String -> m_a14Pg ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOffsetPrimOptional :: forall m_aG7v. MonadFree AnnotationF m_aG7v => AnnKeywordId -> Int -> Maybe String -> m_aG7v ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_a14Lr. MonadFree AnnotationF m_a14Lr => AnnKeywordId -> KeywordId -> m_a14Lr ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markOutside :: forall m_aG3u. MonadFree AnnotationF m_aG3u => AnnKeywordId -> KeywordId -> m_aG3u ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_a14KN. MonadFree AnnotationF m_a14KN => AnnKeywordId -> Maybe String -> m_a14KN ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPPOptional :: forall m_aG2O. MonadFree AnnotationF m_aG2O => AnnKeywordId -> Maybe String -> m_aG2O ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_a14K9. MonadFree AnnotationF m_a14K9 => AnnKeywordId -> Maybe String -> m_a14K9 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: markPrim :: forall m_aG28. MonadFree AnnotationF m_aG28 => AnnKeywordId -> Maybe String -> m_aG28 ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_a14T5. MonadFree AnnotationF m_a14T5 => Set AstContext -> Int -> Annotated () -> m_a14T5 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: setContextLevel :: forall m_aGbw. MonadFree AnnotationF m_aGbw => Set AstContext -> Int -> Annotated () -> m_aGbw ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_a14Qz. MonadFree AnnotationF m_a14Qz => SrcSpan -> AnnKey -> m_a14Qz AnnKey
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: storeOriginalSrcSpan :: forall m_aG8S. MonadFree AnnotationF m_aG8S => SrcSpan -> AnnKey -> m_aG8S AnnKey
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_a14VL. MonadFree AnnotationF m_a14VL => Set AstContext -> m_a14VL ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: tellContext :: forall m_aGek. MonadFree AnnotationF m_aGek => Set AstContext -> m_aGek ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_a14TM. MonadFree AnnotationF m_a14TM => AstContext -> Annotated () -> m_a14TM ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: unsetContext :: forall m_aGcf. MonadFree AnnotationF m_aGcf => AstContext -> Annotated () -> m_aGcf ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_a14Su. MonadFree AnnotationF m_a14Su => [(SrcSpan, Annotated ())] -> m_a14Su ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKey :: forall m_aGaT. MonadFree AnnotationF m_aGaT => [(SrcSpan, Annotated ())] -> m_aGaT ()
- Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_a14V7. MonadFree AnnotationF m_a14V7 => ListContexts -> [(SrcSpan, Annotated ())] -> m_a14V7 ()
+ Language.Haskell.GHC.ExactPrint.AnnotateTypes: withSortKeyContexts :: forall m_aGdE. MonadFree AnnotationF m_aGdE => ListContexts -> [(SrcSpan, Annotated ())] -> m_aGdE ()
- Language.Haskell.GHC.ExactPrint.Transform: addSimpleAnnT :: (Data a) => Located a -> DeltaPos -> [(KeywordId, DeltaPos)] -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: addSimpleAnnT :: (Data a, Monad m) => Located a -> DeltaPos -> [(KeywordId, DeltaPos)] -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: addTrailingCommaT :: (Data a) => Located a -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: addTrailingCommaT :: (Data a, Monad m) => Located a -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: balanceComments :: (Data a, Data b) => Located a -> Located b -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: balanceComments :: (Data a, Data b, Monad m) => Located a -> Located b -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: cloneT :: (Data a) => a -> Transform (a, [(SrcSpan, SrcSpan)])
+ Language.Haskell.GHC.ExactPrint.Transform: cloneT :: (Data a, Monad m) => a -> TransformT m (a, [(SrcSpan, SrcSpan)])
- Language.Haskell.GHC.ExactPrint.Transform: getEntryDPT :: (Data a) => Located a -> Transform DeltaPos
+ Language.Haskell.GHC.ExactPrint.Transform: getEntryDPT :: (Data a, Monad m) => Located a -> TransformT m DeltaPos
- Language.Haskell.GHC.ExactPrint.Transform: graftT :: (Data a) => Anns -> a -> Transform a
+ Language.Haskell.GHC.ExactPrint.Transform: graftT :: (Data a, Monad m) => Anns -> a -> TransformT m a
- Language.Haskell.GHC.ExactPrint.Transform: hsDecls :: (HasDecls t, Monad m) => t -> TransformT m [LHsDecl RdrName]
+ Language.Haskell.GHC.ExactPrint.Transform: hsDecls :: (HasDecls t, (Monad m)) => t -> TransformT m [LHsDecl RdrName]
- Language.Haskell.GHC.ExactPrint.Transform: hsDeclsGeneric :: (Data t) => t -> Transform [LHsDecl RdrName]
+ Language.Haskell.GHC.ExactPrint.Transform: hsDeclsGeneric :: (Data t, Monad m) => t -> TransformT m [LHsDecl RdrName]
- Language.Haskell.GHC.ExactPrint.Transform: removeTrailingCommaT :: (Data a) => Located a -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: removeTrailingCommaT :: (Data a, Monad m) => Located a -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: replaceDecls :: (HasDecls t, Monad m) => t -> [LHsDecl RdrName] -> TransformT m t
+ Language.Haskell.GHC.ExactPrint.Transform: replaceDecls :: (HasDecls t, (Monad m)) => t -> [LHsDecl RdrName] -> TransformT m t
- Language.Haskell.GHC.ExactPrint.Transform: setEntryDPT :: (Data a) => Located a -> DeltaPos -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: setEntryDPT :: (Data a, Monad m) => Located a -> DeltaPos -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: setPrecedingLinesDeclT :: LHsDecl RdrName -> Int -> Int -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: setPrecedingLinesDeclT :: (Monad m) => LHsDecl RdrName -> Int -> Int -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: setPrecedingLinesT :: (Data a) => Located a -> Int -> Int -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: setPrecedingLinesT :: (Data a, Monad m) => Located a -> Int -> Int -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: transferEntryDPT :: (Data a, Data b) => Located a -> Located b -> Transform ()
+ Language.Haskell.GHC.ExactPrint.Transform: transferEntryDPT :: (Data a, Data b, Monad m) => Located a -> Located b -> TransformT m ()
- Language.Haskell.GHC.ExactPrint.Transform: uniqueSrcSpanT :: Transform SrcSpan
+ Language.Haskell.GHC.ExactPrint.Transform: uniqueSrcSpanT :: (Monad m) => TransformT m SrcSpan

Files

ChangeLog view
@@ -1,3 +1,5 @@+2017-07-23 v0.5.5.0+	* Support GHC 8.2.1 2017-05-17 v0.5.4.0 	* Support GHC 8.2 (rc2) 2017-05-05 v0.5.3.1
ghc-exactprint.cabal view
@@ -1,5 +1,5 @@ name:                ghc-exactprint-version:             0.5.4.0+version:             0.5.5.0 synopsis:            ExactPrint for GHC description:         Using the API Annotations available from GHC 7.10.2, this                      library provides a means to round trip any code that can@@ -146,7 +146,7 @@   if flag (dev)       build-depends: free   else-      build-depends: ghc-exactprint >= 0.5.3+      build-depends: ghc-exactprint >= 0.5.4    if impl (ghc >= 7.11)       build-depends: ghc-boot
src-ghc82/Language/Haskell/GHC/ExactPrint/Annotater.hs view
@@ -979,8 +979,8 @@    markAST _ (GHC.Match mln pats _typ (GHC.GRHSs grhs (GHC.L _ lb))) = do     let-      get_infix (GHC.FunRhs _ f) = f-      get_infix _                = GHC.Prefix+      get_infix (GHC.FunRhs _ f _) = f+      get_infix _                  = GHC.Prefix        isFunBind GHC.FunRhs{} = True       isFunBind _            = False@@ -991,7 +991,7 @@           else mark         GHC.AnnOpenP         markLocated a         case mln of-          GHC.FunRhs n _ -> setContext (Set.singleton InfixOp) $ markLocated n+          GHC.FunRhs n _ _ -> setContext (Set.singleton InfixOp) $ markLocated n           _              -> return ()         markLocated b         if null xs@@ -1002,8 +1002,10 @@         annotationsToComments [GHC.AnnOpenP,GHC.AnnCloseP]         inContext (Set.fromList [LambdaExpr]) $ do mark GHC.AnnLam -- For HsLam         case mln of-          GHC.FunRhs n _ -> do-            setContext (Set.fromList [NoPrecedingSpace,PrefixOp]) $ markLocated n+          GHC.FunRhs n _ s -> do+            setContext (Set.fromList [NoPrecedingSpace,PrefixOp]) $ do+              when (s == GHC.SrcStrict) $ mark GHC.AnnBang+              markLocated n             mapM_ markLocated pats           _  -> markListNoPrecedingSpace False pats 
src/Language/Haskell/GHC/ExactPrint/Transform.hs view
@@ -127,7 +127,7 @@                          ,MonadReader ()                          ,MonadWriter [String]                          ,MonadState (Anns,Int)-                         -- ,MonadTrans+                         ,MonadTrans                          )  @@ -179,7 +179,7 @@ -- |Once we have 'Anns', a 'GHC.SrcSpan' is used purely as part of an 'AnnKey' -- to index into the 'Anns'. If we need to add new elements to the AST, they -- need their own 'GHC.SrcSpan' for this.-uniqueSrcSpanT :: Transform GHC.SrcSpan+uniqueSrcSpanT :: (Monad m) => TransformT m GHC.SrcSpan uniqueSrcSpanT = do   (an,col) <- get   put (an,col + 1 )@@ -193,12 +193,12 @@ -- --------------------------------------------------------------------- -- |Make a copy of an AST element, replacing the existing SrcSpans with new -- ones, and duplicating the matching annotations.-cloneT :: (Data a) => a -> Transform (a, [(GHC.SrcSpan, GHC.SrcSpan)])+cloneT :: (Data a,Monad m) => a -> TransformT m (a, [(GHC.SrcSpan, GHC.SrcSpan)]) cloneT ast = do   runWriterT $ SYB.everywhereM (return `SYB.ext2M` replaceLocated) ast   where-    replaceLocated :: forall loc a. (Typeable loc,Data a)-                    => (GHC.GenLocated loc a) -> WriterT [(GHC.SrcSpan, GHC.SrcSpan)] Transform (GHC.GenLocated loc a)+    replaceLocated :: forall loc a m. (Typeable loc,Data a,Monad m)+                    => (GHC.GenLocated loc a) -> WriterT [(GHC.SrcSpan, GHC.SrcSpan)] (TransformT m) (GHC.GenLocated loc a)     replaceLocated (GHC.L l t) = do       case cast l :: Maybe GHC.SrcSpan of         Just ss -> do@@ -212,11 +212,11 @@  -- --------------------------------------------------------------------- -- |Slightly more general form of cloneT-graftT :: (Data a) => Anns -> a -> Transform a+graftT :: (Data a,Monad m) => Anns -> a -> TransformT m a graftT origAnns = SYB.everywhereM (return `SYB.ext2M` replaceLocated)   where-    replaceLocated :: forall loc a. (Typeable loc, Data a)-                    => GHC.GenLocated loc a -> Transform (GHC.GenLocated loc a)+    replaceLocated :: forall loc a m. (Typeable loc, Data a, Monad m)+                    => GHC.GenLocated loc a -> TransformT m (GHC.GenLocated loc a)     replaceLocated (GHC.L l t) = do       case cast l :: Maybe GHC.SrcSpan of         Just ss -> do@@ -276,7 +276,7 @@  -- |Create a simple 'Annotation' without comments, and attach it to the first -- parameter.-addSimpleAnnT :: (Data a) => GHC.Located a -> DeltaPos -> [(KeywordId, DeltaPos)] -> Transform ()+addSimpleAnnT :: (Data a,Monad m) => GHC.Located a -> DeltaPos -> [(KeywordId, DeltaPos)] -> TransformT m () addSimpleAnnT ast dp kds = do   let ann = annNone { annEntryDelta = dp                     , annsDP = kds@@ -286,21 +286,21 @@ -- ---------------------------------------------------------------------  -- |Add a trailing comma annotation, unless there is already one-addTrailingCommaT :: (Data a) => GHC.Located a -> Transform ()+addTrailingCommaT :: (Data a,Monad m) => GHC.Located a -> TransformT m () addTrailingCommaT ast = do   modifyAnnsT (addTrailingComma ast (DP (0,0)))  -- ---------------------------------------------------------------------  -- |Remove a trailing comma annotation, if there is one one-removeTrailingCommaT :: (Data a) => GHC.Located a -> Transform ()+removeTrailingCommaT :: (Data a,Monad m) => GHC.Located a -> TransformT m () removeTrailingCommaT ast = do   modifyAnnsT (removeTrailingComma ast)  -- ---------------------------------------------------------------------  -- |'Transform' monad version of 'getEntryDP'-getEntryDPT :: (Data a) => GHC.Located a -> Transform DeltaPos+getEntryDPT :: (Data a,Monad m) => GHC.Located a -> TransformT m DeltaPos getEntryDPT ast = do   anns <- getAnnsT   return (getEntryDP anns ast)@@ -308,28 +308,28 @@ -- ---------------------------------------------------------------------  -- |'Transform' monad version of 'getEntryDP'-setEntryDPT :: (Data a) => GHC.Located a -> DeltaPos -> Transform ()+setEntryDPT :: (Data a,Monad m) => GHC.Located a -> DeltaPos -> TransformT m () setEntryDPT ast dp = do   modifyAnnsT (setEntryDP ast dp)  -- ---------------------------------------------------------------------  -- |'Transform' monad version of 'transferEntryDP'-transferEntryDPT :: (Data a,Data b) => GHC.Located a -> GHC.Located b -> Transform ()+transferEntryDPT :: (Data a,Data b,Monad m) => GHC.Located a -> GHC.Located b -> TransformT m () transferEntryDPT a b =   modifyAnnsT (transferEntryDP a b)  -- ---------------------------------------------------------------------  -- |'Transform' monad version of 'setPrecedingLinesDecl'-setPrecedingLinesDeclT ::  GHC.LHsDecl GHC.RdrName -> Int -> Int -> Transform ()+setPrecedingLinesDeclT :: (Monad m) => GHC.LHsDecl GHC.RdrName -> Int -> Int -> TransformT m () setPrecedingLinesDeclT ld n c =   modifyAnnsT (setPrecedingLinesDecl ld n c)  -- ---------------------------------------------------------------------  -- |'Transform' monad version of 'setPrecedingLines'-setPrecedingLinesT ::  (SYB.Data a) => GHC.Located a -> Int -> Int -> Transform ()+setPrecedingLinesT ::  (SYB.Data a,Monad m) => GHC.Located a -> Int -> Int -> TransformT m () setPrecedingLinesT ld n c =   modifyAnnsT (setPrecedingLines ld n c) @@ -452,7 +452,7 @@ -- from the second one to the 'annFollowingComments' of the first if they belong -- to it instead. This is typically required before deleting or duplicating -- either of the AST elements.-balanceComments :: (Data a,Data b) => GHC.Located a -> GHC.Located b -> Transform ()+balanceComments :: (Data a,Data b,Monad m) => GHC.Located a -> GHC.Located b -> TransformT m () balanceComments first second = do   -- ++AZ++ : replace the nested casts with appropriate SYB.gmapM   -- logTr $ "balanceComments entered"@@ -469,7 +469,7 @@ -- it are attached to it, and not the following element. Of necessity this is a -- heuristic process, to be tuned later. Possibly a variant should be provided -- with a passed-in decision function.-balanceComments' :: (Data a,Data b) => GHC.Located a -> GHC.Located b -> Transform ()+balanceComments' :: (Data a,Data b,Monad m) => GHC.Located a -> GHC.Located b -> TransformT m () balanceComments' first second = do   let     k1 = mkAnnKey first@@ -492,7 +492,7 @@ -- |Once 'balanceComments' has been called to move trailing comments to a -- 'GHC.FunBind', these need to be pushed down from the top level to the last -- 'GHC.Match' if that 'GHC.Match' needs to be manipulated.-balanceCommentsFB :: (Data b) => GHC.LHsBind GHC.RdrName -> GHC.Located b -> Transform ()+balanceCommentsFB :: (Data b,Monad m) => GHC.LHsBind GHC.RdrName -> GHC.Located b -> TransformT m () #if __GLASGOW_HASKELL__ <= 710 balanceCommentsFB (GHC.L _ (GHC.FunBind _ _ (GHC.MG matches _ _ _) _ _ _)) second = do #else@@ -894,7 +894,7 @@ -- the general case and one specific for a 'GHC.LHsBind'. This is required -- because a 'GHC.FunBind' may have multiple 'GHC.Match' items, so we cannot -- gurantee that 'replaceDecls' after 'hsDecls' is idempotent.-hasDeclsSybTransform :: (SYB.Data t2, Monad m)+hasDeclsSybTransform :: (SYB.Data t2,Monad m)        => (forall t. HasDecls t => t -> m t)              -- ^Worker function for the general case        -> (GHC.LHsBind GHC.RdrName -> m (GHC.LHsBind GHC.RdrName))@@ -938,7 +938,7 @@ -- return anything for these as there is not meaningful 'replaceDecls' for it. -- This function provides a version of 'hsDecls' that returns the 'GHC.FunBind' -- decls too, where they are needed for analysis only.-hsDeclsGeneric :: (SYB.Data t) => t -> Transform [GHC.LHsDecl GHC.RdrName]+hsDeclsGeneric :: (SYB.Data t,Monad m) => t -> TransformT m [GHC.LHsDecl GHC.RdrName] hsDeclsGeneric t = q t   where     q = return []@@ -961,7 +961,7 @@      -- --------------------------------- -    lhsbind :: GHC.LHsBind GHC.RdrName -> Transform [GHC.LHsDecl GHC.RdrName]+    lhsbind :: (Monad m) => GHC.LHsBind GHC.RdrName -> TransformT m [GHC.LHsDecl GHC.RdrName] #if __GLASGOW_HASKELL__ <= 710     lhsbind (GHC.L _ (GHC.FunBind _ _ (GHC.MG matches _ _ _) _ _ _)) = do #else@@ -980,12 +980,12 @@      -- --------------------------------- -    llocalbinds :: GHC.Located (GHC.HsLocalBinds GHC.RdrName) -> Transform [GHC.LHsDecl GHC.RdrName]+    llocalbinds :: (Monad m) => GHC.Located (GHC.HsLocalBinds GHC.RdrName) -> TransformT m [GHC.LHsDecl GHC.RdrName]     llocalbinds (GHC.L _ ds) = localbinds ds      -- --------------------------------- -    localbinds :: GHC.HsLocalBinds GHC.RdrName -> Transform [GHC.LHsDecl GHC.RdrName]+    localbinds :: (Monad m) => GHC.HsLocalBinds GHC.RdrName -> TransformT m [GHC.LHsDecl GHC.RdrName]     localbinds d = hsDeclsValBinds d  -- ---------------------------------------------------------------------
tests/Test.hs view
@@ -183,13 +183,13 @@ tt' :: IO (Counts,Int) tt' = runTestText (putTextToHandle stdout True) $ TestList [ -      mkPrettyRoundtrip "ghc80" "Zwaluw.hs"+      -- mkPrettyRoundtrip "ghc80" "Zwaluw.hs"       -- mkPrettyRoundtrip "ghc80" "pmc007.hs"       -- mkPrettyRoundtrip "ghc80" "MultiQuote.hs"       -- mkPrettyRoundtrip "ghc80" "T10689a.hs"       -- mkPrettyRoundtrip "ghc710" "Ann01.hs" -      , mkParserTest "ghc80" "Zwaluw.hs"+       mkParserTest "ghc82" "T13594.hs"       -- mkParserTest "ghc80" "SemicolonIf.hs"       -- mkParserTest "ghc80" "T10689a.hs"       -- mkParserTest "ghc80" "MonadT.hs"
+ tests/examples/transform/Brittany1.hs view
@@ -0,0 +1,22 @@++-- From https://github.com/alanz/ghc-exactprint/issues/53#issuecomment-306839162++blah = func+  where+--                       status   standard   previous+--                       quo      layouting  /associated+--                                rule only  ast item+ func =+  -- mercury             (1, 1)   (1,1)      (1,1)+    [+        -- venus         (1, 7)   (1, 7)     (1, 7) or (1, 2) if connected to "foo x"+      foo x+         -- earth        (1, 8)   (1, 8)     (1, 3)+     |   y <- z+       -- pluto          (1, -2)  (1, 6)     (1, -2)+      -- saturn          (1, -3)  (1, 5)     (1, -3)+     ,    x <- y+           -- jupiter    (1, 2)   (1, 10)    (1, 1)+     ,      pred x+  -- nepturn             (1, 1)   (1, 1)     (1, -10)+      ]
+ tests/examples/transform/Brittany1.hs.expected view
@@ -0,0 +1,22 @@++-- From https://github.com/alanz/ghc-exactprint/issues/53#issuecomment-306839162++blah = func+  where+--                       status   standard   previous+--                       quo      layouting  /associated+--                                rule only  ast item+ func =+  -- mercury             (1, 1)   (1,1)      (1,1)+    [+        -- venus         (1, 7)   (1, 7)     (1, 7) or (1, 2) if connected to "foo x"+      foo x+         -- earth        (1, 8)   (1, 8)     (1, 3)+     |   y <- z+       -- pluto          (1, -2)  (1, 6)     (1, -2)+      -- saturn          (1, -3)  (1, 5)     (1, -3)+     ,    x <- y+           -- jupiter    (1, 2)   (1, 10)    (1, 1)+     ,      pred x+  -- nepturn             (1, 1)   (1, 1)     (1, -10)+      ]