ghcide-1.7.0.0: The core of an IDE
Safe HaskellNone
LanguageHaskell2010

Development.IDE.GHC.ExactPrint

Description

This module hosts various abstractions and utility functions to work with ghc-exactprint.

Synopsis

Documentation

newtype Graft m a Source #

A transformation for grafting source trees together. Use the semigroup instance to combine Grafts, and run them via transform.

Constructors

Graft 

Fields

Instances

Instances details
Monad m => Semigroup (Graft m a) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

(<>) :: Graft m a -> Graft m a -> Graft m a #

sconcat :: NonEmpty (Graft m a) -> Graft m a #

stimes :: Integral b => b -> Graft m a -> Graft m a #

Monad m => Monoid (Graft m a) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

mempty :: Graft m a #

mappend :: Graft m a -> Graft m a -> Graft m a #

mconcat :: [Graft m a] -> Graft m a #

annotate :: (ASTElement l ast, Outputable l) => DynFlags -> Bool -> LocatedAn l ast -> TransformT (Either String) (Anns, LocatedAn l ast) Source #

Given an LHSExpr, compute its exactprint annotations. Note that this function will throw away any existing annotations (and format)

annotateDecl :: DynFlags -> LHsDecl GhcPs -> TransformT (Either String) (LHsDecl GhcPs) Source #

Given an LHsDecl, compute its exactprint annotations.

hoistGraft :: (forall x. m x -> n x) -> Graft m a -> Graft n a Source #

graftWithM :: forall ast m a l. (MonadFail m, Data a, Typeable l, ASTElement l ast) => SrcSpan -> (LocatedAn l ast -> TransformT m (Maybe (LocatedAn l ast))) -> Graft m a Source #

graftExprWithM :: forall m a. (MonadFail m, Data a) => SrcSpan -> (LHsExpr GhcPs -> TransformT m (Maybe (LHsExpr GhcPs))) -> Graft m a Source #

genericGraftWithSmallestM Source #

Arguments

:: forall m a ast. (Monad m, Data a, Typeable ast) 
=> Proxy (Located ast)

The type of nodes we'd like to consider when finding the smallest.

-> SrcSpan 
-> (DynFlags -> ast -> GenericM (TransformT m)) 
-> Graft m a 

Run the given transformation only on the smallest node in the tree that contains the SrcSpan.

genericGraftWithLargestM Source #

Arguments

:: forall m a ast. (Monad m, Data a, Typeable ast) 
=> Proxy (Located ast)

The type of nodes we'd like to consider when finding the largest.

-> SrcSpan 
-> (DynFlags -> ast -> GenericM (TransformT m)) 
-> Graft m a 

Run the given transformation only on the largest node in the tree that contains the SrcSpan.

class ExactPrint ast where Source #

Minimal complete definition

Nothing

Methods

makeDeltaAst :: ast -> ast Source #

Instances

Instances details
ExactPrint ast Source # 
Instance details

Defined in Development.IDE.GHC.Compat.ExactPrint

Methods

makeDeltaAst :: ast -> ast Source #

type Anns = Map AnnKey Annotation #

This structure holds a complete set of annotations for an AST

class Data ast => Annotate ast #

Minimal complete definition

markAST

Instances

Instances details
Annotate DocDecl 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> DocDecl -> Annotated () #

Annotate HsIPName 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsIPName -> Annotated () #

Annotate RdrName 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> RdrName -> Annotated () #

Annotate HsDocString 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate Safety 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Safety -> Annotated () #

Annotate CExportSpec 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate CCallConv 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> CCallConv -> Annotated () #

Annotate CType 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> CType -> Annotated () #

Annotate StringLiteral 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate WarningTxt 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> WarningTxt -> Annotated () #

Annotate OverlapMode 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate ModuleName 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> ModuleName -> Annotated () #

Annotate FastString 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> FastString -> Annotated () #

Annotate ResTyGADTHook 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> ResTyGADTHook -> Annotated () #

Annotate WildCardAnon 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> WildCardAnon -> Annotated () #

Annotate [ExprLStmt GhcPs]

Used for declarations that need to be aligned together, e.g. in a do or let .. in statement/expr

Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> [ExprLStmt GhcPs] -> Annotated () #

Annotate [LHsDerivingClause GhcPs] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate [LHsType GhcPs] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> [LHsType GhcPs] -> Annotated () #

Annotate [LHsSigType GhcPs] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> [LHsSigType GhcPs] -> Annotated () #

Annotate [LConDeclField GhcPs] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate [LIE GhcPs] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> [LIE GhcPs] -> Annotated () #

Annotate body => Annotate [Located (Match GhcPs (Located body))] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> [Located (Match GhcPs (Located body))] -> Annotated () #

Annotate [Located (StmtLR GhcPs GhcPs (LHsCmd GhcPs))] 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (Maybe Role) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Maybe Role -> Annotated () #

Annotate (HsModule GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsTupArg GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsCmdTop GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsDecl GhcPs -> Annotated () #

Annotate (SpliceDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (TyClDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (FamilyResultSig GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (FamilyDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (InjectivityAnn GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsDerivingClause GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (StandaloneKindSig GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (ConDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> ConDecl GhcPs -> Annotated () #

Annotate (TyFamInstEqn GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (TyFamInstDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (DataFamInstDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (ClsInstDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (InstDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (DerivDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (DerivStrategy GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (DefaultDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (ForeignDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (RuleDecls GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (RuleDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (RuleBndr GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (WarnDecls GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (WarnDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (AnnDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> AnnDecl GhcPs -> Annotated () #

Annotate (RoleAnnotDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsRecUpdField GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsLocalBinds GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsBind GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsBind GhcPs -> Annotated () #

Annotate (IPBind GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> IPBind GhcPs -> Annotated () #

Annotate (Sig GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Sig GhcPs -> Annotated () #

Annotate (HsTyVarBndr GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsType GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsType GhcPs -> Annotated () #

Annotate (ConDeclField GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (FieldOcc GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (AmbiguousFieldOcc GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsLit GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsLit GhcPs -> Annotated () #

Annotate (HsOverLit GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (FunDep (Located RdrName)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsExpr GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsExpr GhcPs -> Annotated () #

Annotate (HsCmd GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> HsCmd GhcPs -> Annotated () #

Annotate (HsSplice GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (ImportDecl GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (IEWrappedName RdrName) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (IE GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> IE GhcPs -> Annotated () #

Annotate (Pat GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Pat GhcPs -> Annotated () #

Annotate name => Annotate (BooleanFormula (Located name)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> BooleanFormula (Located name) -> Annotated () #

(Data ast, Annotate ast) => Annotate (Located ast) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Located ast -> Annotated () #

Annotate (SourceText, FastString) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate body => Annotate (Match GhcPs (Located body)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Match GhcPs (Located body) -> Annotated () #

Annotate body => Annotate (GRHS GhcPs (Located body)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> GRHS GhcPs (Located body) -> Annotated () #

Annotate body => Annotate (Stmt GhcPs (Located body)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Methods

markAST :: SrcSpan -> Stmt GhcPs (Located body) -> Annotated () #

Annotate (ParStmtBlock GhcPs GhcPs) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsRecField GhcPs (LHsExpr GhcPs)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate (HsRecField GhcPs (Located (Pat GhcPs))) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

Annotate arg => Annotate (HsImplicitBndrs GhcPs (Located arg)) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Annotater

setPrecedingLinesT :: forall a (m :: Type -> Type). (Data a, Monad m) => Located a -> Int -> Int -> TransformT m () #

Transform monad version of setPrecedingLines

getAnnotatedParsedSourceRule :: Recorder (WithPriority Log) -> Rules () Source #

Get the latest version of the annotated parse source with comments.

data GetAnnotatedParsedSource Source #

Instances

Instances details
Eq GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Show GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Generic GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Associated Types

type Rep GetAnnotatedParsedSource :: Type -> Type #

Hashable GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

NFData GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

type Rep GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

type Rep GetAnnotatedParsedSource = D1 ('MetaData "GetAnnotatedParsedSource" "Development.IDE.GHC.ExactPrint" "ghcide-1.7.0.0-Et6Gp1ZnqTjGFkpVtgQ7GA" 'False) (C1 ('MetaCons "GetAnnotatedParsedSource" 'PrefixI 'False) (U1 :: Type -> Type))
type RuleResult GetAnnotatedParsedSource Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

class (Data ast, Typeable l, Outputable l, Outputable ast) => ASTElement l ast | ast -> l where Source #

Minimal complete definition

parseAST, maybeParensAST

Methods

parseAST :: Parser (LocatedAn l ast) Source #

maybeParensAST :: LocatedAn l ast -> LocatedAn l ast Source #

graft :: forall a. Data a => SrcSpan -> LocatedAn l ast -> Graft (Either String) a Source #

Construct a Graft, replacing the node at the given SrcSpan with the given Located ast. The node at that position must already be a Located ast, or this is a no-op.

Instances

Instances details
ASTElement NameAnn RdrName Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

p ~ GhcPs => ASTElement AnnListItem (HsDecl p) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

p ~ GhcPs => ASTElement AnnListItem (HsType p) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

p ~ GhcPs => ASTElement AnnListItem (HsExpr p) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

p ~ GhcPs => ASTElement AnnListItem (ImportDecl p) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

p ~ GhcPs => ASTElement AnnListItem (Pat p) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

newtype ExceptStringT m a Source #

Constructors

ExceptStringT 

Instances

Instances details
MonadTrans ExceptStringT Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

lift :: Monad m => m a -> ExceptStringT m a #

Monad m => Monad (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

(>>=) :: ExceptStringT m a -> (a -> ExceptStringT m b) -> ExceptStringT m b #

(>>) :: ExceptStringT m a -> ExceptStringT m b -> ExceptStringT m b #

return :: a -> ExceptStringT m a #

Functor m => Functor (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

fmap :: (a -> b) -> ExceptStringT m a -> ExceptStringT m b #

(<$) :: a -> ExceptStringT m b -> ExceptStringT m a #

Monad m => MonadFail (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

fail :: String -> ExceptStringT m a #

Monad m => Applicative (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

pure :: a -> ExceptStringT m a #

(<*>) :: ExceptStringT m (a -> b) -> ExceptStringT m a -> ExceptStringT m b #

liftA2 :: (a -> b -> c) -> ExceptStringT m a -> ExceptStringT m b -> ExceptStringT m c #

(*>) :: ExceptStringT m a -> ExceptStringT m b -> ExceptStringT m b #

(<*) :: ExceptStringT m a -> ExceptStringT m b -> ExceptStringT m a #

Foldable m => Foldable (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

fold :: Monoid m0 => ExceptStringT m m0 -> m0 #

foldMap :: Monoid m0 => (a -> m0) -> ExceptStringT m a -> m0 #

foldMap' :: Monoid m0 => (a -> m0) -> ExceptStringT m a -> m0 #

foldr :: (a -> b -> b) -> b -> ExceptStringT m a -> b #

foldr' :: (a -> b -> b) -> b -> ExceptStringT m a -> b #

foldl :: (b -> a -> b) -> b -> ExceptStringT m a -> b #

foldl' :: (b -> a -> b) -> b -> ExceptStringT m a -> b #

foldr1 :: (a -> a -> a) -> ExceptStringT m a -> a #

foldl1 :: (a -> a -> a) -> ExceptStringT m a -> a #

toList :: ExceptStringT m a -> [a] #

null :: ExceptStringT m a -> Bool #

length :: ExceptStringT m a -> Int #

elem :: Eq a => a -> ExceptStringT m a -> Bool #

maximum :: Ord a => ExceptStringT m a -> a #

minimum :: Ord a => ExceptStringT m a -> a #

sum :: Num a => ExceptStringT m a -> a #

product :: Num a => ExceptStringT m a -> a #

Monad m => MonadPlus (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

MonadIO m => MonadIO (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

liftIO :: IO a -> ExceptStringT m a #

Contravariant m => Contravariant (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

contramap :: (a -> b) -> ExceptStringT m b -> ExceptStringT m a #

(>$) :: b -> ExceptStringT m b -> ExceptStringT m a #

Monad m => Alternative (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Eq1 m => Eq1 (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

liftEq :: (a -> b -> Bool) -> ExceptStringT m a -> ExceptStringT m b -> Bool #

Ord1 m => Ord1 (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

liftCompare :: (a -> b -> Ordering) -> ExceptStringT m a -> ExceptStringT m b -> Ordering #

Read1 m => Read1 (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Show1 m => Show1 (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

liftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> ExceptStringT m a -> ShowS #

liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [ExceptStringT m a] -> ShowS #

MonadZip m => MonadZip (ExceptStringT m) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

mzip :: ExceptStringT m a -> ExceptStringT m b -> ExceptStringT m (a, b) #

mzipWith :: (a -> b -> c) -> ExceptStringT m a -> ExceptStringT m b -> ExceptStringT m c #

munzip :: ExceptStringT m (a, b) -> (ExceptStringT m a, ExceptStringT m b) #

(Eq1 m, Eq a) => Eq (ExceptStringT m a) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

(==) :: ExceptStringT m a -> ExceptStringT m a -> Bool #

(/=) :: ExceptStringT m a -> ExceptStringT m a -> Bool #

(Ord1 m, Ord a) => Ord (ExceptStringT m a) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

(Read1 m, Read a) => Read (ExceptStringT m a) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

(Show1 m, Show a) => Show (ExceptStringT m a) Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

data TransformT (m :: Type -> Type) a #

Monad transformer version of Transform monad

Instances

Instances details
MonadTrans TransformT 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

lift :: Monad m => m a -> TransformT m a #

Monad m => MonadReader () (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

ask :: TransformT m () #

local :: (() -> ()) -> TransformT m a -> TransformT m a #

reader :: (() -> a) -> TransformT m a #

Monad m => Monad (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

(>>=) :: TransformT m a -> (a -> TransformT m b) -> TransformT m b #

(>>) :: TransformT m a -> TransformT m b -> TransformT m b #

return :: a -> TransformT m a #

Functor m => Functor (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

fmap :: (a -> b) -> TransformT m a -> TransformT m b #

(<$) :: a -> TransformT m b -> TransformT m a #

MonadFail m => MonadFail (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

fail :: String -> TransformT m a #

Monad m => Applicative (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

pure :: a -> TransformT m a #

(<*>) :: TransformT m (a -> b) -> TransformT m a -> TransformT m b #

liftA2 :: (a -> b -> c) -> TransformT m a -> TransformT m b -> TransformT m c #

(*>) :: TransformT m a -> TransformT m b -> TransformT m b #

(<*) :: TransformT m a -> TransformT m b -> TransformT m a #

Monad m => HasTransform (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

liftT :: Transform a -> TransformT m a #

Monad m => MonadWriter [String] (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

writer :: (a, [String]) -> TransformT m a #

tell :: [String] -> TransformT m () #

listen :: TransformT m a -> TransformT m (a, [String]) #

pass :: TransformT m (a, [String] -> [String]) -> TransformT m a #

Monad m => MonadState (Anns, Int) (TransformT m) 
Instance details

Defined in Language.Haskell.GHC.ExactPrint.Transform

Methods

get :: TransformT m (Anns, Int) #

put :: (Anns, Int) -> TransformT m () #

state :: ((Anns, Int) -> (a, (Anns, Int))) -> TransformT m a #

data Log Source #

Constructors

LogShake Log 

Instances

Instances details
Show Log Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

showsPrec :: Int -> Log -> ShowS #

show :: Log -> String #

showList :: [Log] -> ShowS #

Pretty Log Source # 
Instance details

Defined in Development.IDE.GHC.ExactPrint

Methods

pretty :: Log -> Doc ann #

prettyList :: [Log] -> Doc ann #