Safe Haskell | None |
---|---|
Language | Haskell2010 |
Types and instances for monadic refactorings. The refactoring monad provides automatic importing, keeping important source fragments (such as preprocessor pragmas), and providing contextual information for refactorings.
- class Monad m => RefactorMonad m where
- type LocalRefactoring = UnnamedModule -> LocalRefactor UnnamedModule
- type Refactoring = ModuleDom -> [ModuleDom] -> Refactor [RefactorChange]
- type ProjectRefactoring = [ModuleDom] -> Refactor [RefactorChange]
- type LocalRefactor = LocalRefactorT Refactor
- type Refactor = ExceptT String Ghc
- newtype LocalRefactorT m a = LocalRefactorT {
- fromRefactorT :: WriterT [Either Name (SrcSpan, String, String)] (ReaderT RefactorCtx m) a
- data RefactorCtx = RefactorCtx {}
Documentation
class Monad m => RefactorMonad m where Source #
A monad that can be used to refactor
RefactorMonad Refactor Source # | |
RefactorMonad LocalRefactor Source # | |
RefactorMonad m => RefactorMonad (StateT s m) Source # | |
RefactorMonad m => RefactorMonad (StateT s m) Source # | |
type LocalRefactoring = UnnamedModule -> LocalRefactor UnnamedModule Source #
A refactoring that only affects one module
type Refactoring = ModuleDom -> [ModuleDom] -> Refactor [RefactorChange] Source #
The type of a refactoring
type ProjectRefactoring = [ModuleDom] -> Refactor [RefactorChange] Source #
The type of a refactoring that affects the whole project.
type LocalRefactor = LocalRefactorT Refactor Source #
The refactoring monad for a given module
newtype LocalRefactorT m a Source #
Input and output information for the refactoring TODO: use multiple states instead of Either
LocalRefactorT | |
|
MonadTrans LocalRefactorT Source # | |
RefactorMonad LocalRefactor Source # | |
Monad m => MonadReader RefactorCtx (LocalRefactorT m) Source # | |
Monad m => Monad (LocalRefactorT m) Source # | |
Functor m => Functor (LocalRefactorT m) Source # | |
Applicative m => Applicative (LocalRefactorT m) Source # | |
MonadIO m => MonadIO (LocalRefactorT m) Source # | |
GhcMonad m => GhcMonad (LocalRefactorT m) Source # | |
(HasDynFlags m, Monad m) => HasDynFlags (LocalRefactorT m) Source # | |
ExceptionMonad m => ExceptionMonad (LocalRefactorT m) Source # | |
Monad m => MonadWriter [Either Name (SrcSpan, String, String)] (LocalRefactorT m) Source # | |
data RefactorCtx Source #
The information a refactoring can use
RefactorCtx | |
|
Monad m => MonadReader RefactorCtx (LocalRefactorT m) Source # | |
Some instances missing from GHC
Orphan instances
GhcMonad m => GhcMonad (ExceptT s m) Source # | |
GhcMonad m => GhcMonad (StateT s m) Source # | |
GhcMonad m => GhcMonad (StateT s m) Source # | |
(GhcMonad m, Monoid s) => GhcMonad (WriterT s m) Source # | |
(Monad m, HasDynFlags m) => HasDynFlags (StateT s m) Source # | |
(Monad m, HasDynFlags m) => HasDynFlags (StateT s m) Source # | |
ExceptionMonad m => ExceptionMonad (ExceptT s m) Source # | |
ExceptionMonad m => ExceptionMonad (StateT s m) Source # | |
ExceptionMonad m => ExceptionMonad (StateT s m) Source # | |
(ExceptionMonad m, Monoid s) => ExceptionMonad (WriterT s m) Source # | |
GhcMonad m => GhcMonad (ReaderT * s m) Source # | |
ExceptionMonad m => ExceptionMonad (ReaderT * s m) Source # | |