importify-1.0: Tool for haskell imports refactoring

Safe HaskellNone
LanguageHaskell2010

Importify.Environment

Contents

Description

This module contains enrinment for importify cache command which is running inside ReaderT env IO monad.

Synopsis

Base monad for importify cache command

newtype RIO env a Source #

Constructors

RIO 

Fields

Instances

MonadReader env (RIO env) Source # 

Methods

ask :: RIO env env #

local :: (env -> env) -> RIO env a -> RIO env a #

reader :: (env -> a) -> RIO env a #

Monad (RIO env) Source # 

Methods

(>>=) :: RIO env a -> (a -> RIO env b) -> RIO env b #

(>>) :: RIO env a -> RIO env b -> RIO env b #

return :: a -> RIO env a #

fail :: String -> RIO env a #

Functor (RIO env) Source # 

Methods

fmap :: (a -> b) -> RIO env a -> RIO env b #

(<$) :: a -> RIO env b -> RIO env a #

Applicative (RIO env) Source # 

Methods

pure :: a -> RIO env a #

(<*>) :: RIO env (a -> b) -> RIO env a -> RIO env b #

(*>) :: RIO env a -> RIO env b -> RIO env b #

(<*) :: RIO env a -> RIO env b -> RIO env a #

MonadIO (RIO env) Source # 

Methods

liftIO :: IO a -> RIO env a #

MonadThrow (RIO env) Source # 

Methods

throwM :: Exception e => e -> RIO env a #

MonadCatch (RIO env) Source # 

Methods

catch :: Exception e => RIO env a -> (e -> RIO env a) -> RIO env a #

MonadMask (RIO env) Source # 

Methods

mask :: ((forall a. RIO env a -> RIO env a) -> RIO env b) -> RIO env b #

uninterruptibleMask :: ((forall a. RIO env a -> RIO env a) -> RIO env b) -> RIO env b #

Environment for importify cache command

data CacheEnvironment Source #

Environment for importify cache command.

Constructors

CacheEnvironment 

Fields

type HasGhcIncludeDir env = HasPolyGhcIncludeDir env (Maybe (Path Abs Dir)) Source #

type HasPathToImportify env = HasPolyPathToImportify env (Path Abs Dir) Source #

type HasSaveSources env = HasPolySaveSources env Bool Source #

ghcIncludeDir :: HasPolyGhcIncludeDir s a => Lens' s a Source #

pathToImportify :: HasPolyPathToImportify s a => Lens' s a Source #

pathToSymbols :: HasPathToImportify env => SimpleGetter env (Path Abs Dir) Source #

Getter of ~/path/to/project/.importify/symbols folder.

saveSources :: HasPolySaveSources s a => Lens' s a Source #

Runner for cache commend

runCache :: Bool -> RIO CacheEnvironment () -> IO () Source #

Run importify cache command. This function takes current project directory and searches for ghc include path.