SimplMonad

ghc-7.8.3: The GHC API

Safe Haskell | None
Language | Haskell98

SimplMonad

Synopsis

- data SimplM result
- initSmpl :: DynFlags -> RuleBase -> (FamInstEnv, FamInstEnv) -> UniqSupply -> Int -> SimplM a -> IO (a, SimplCount)
- traceSmpl :: String -> SDoc -> SimplM ()
- getSimplRules :: SimplM RuleBase
- getFamEnvs :: SimplM (FamInstEnv, FamInstEnv)
- class Monad m => MonadUnique m where
  - getUniqueSupplyM :: m UniqSupply
  - getUniqueM :: m Unique
  - getUniquesM :: m [Unique]
- newId :: FastString -> Type -> SimplM Id
- data SimplCount
- tick :: Tick -> SimplM ()
- freeTick :: Tick -> SimplM ()
- checkedTick :: Tick -> SimplM ()
- getSimplCount :: SimplM SimplCount
- zeroSimplCount :: DynFlags -> SimplCount
- pprSimplCount :: SimplCount -> SDoc
- plusSimplCount :: SimplCount -> SimplCount -> SimplCount
- isZeroSimplCount :: SimplCount -> Bool

# Documentation

data SimplM result Source

Instances

Monad SimplM |
Functor SimplM |
Applicative SimplM |
MonadIO SimplM |
MonadUnique SimplM |
HasDynFlags SimplM |

initSmpl :: DynFlags -> RuleBase -> (FamInstEnv, FamInstEnv) -> UniqSupply -> Int -> SimplM a -> IO (a, SimplCount) Source

traceSmpl :: String -> SDoc -> SimplM () Source

getSimplRules :: SimplM RuleBase Source

getFamEnvs :: SimplM (FamInstEnv, FamInstEnv) Source

class Monad m => MonadUnique m where Source

A monad for generating unique identifiers

Minimal complete definition

getUniqueSupplyM

Methods

getUniqueSupplyM :: m UniqSupply Source

Get a new UniqueSupply

getUniqueM :: m Unique Source

Get a new unique identifier

getUniquesM :: m [Unique] Source

Get an infinite list of new unique identifiers

Instances

MonadUnique UniqSM |
MonadUnique TcS |
MonadUnique CoreM |
MonadUnique SimplM |
MonadUnique (IOEnv (Env gbl lcl)) |

newId :: FastString -> Type -> SimplM Id Source

data SimplCount Source

tick :: Tick -> SimplM () Source

freeTick :: Tick -> SimplM () Source

checkedTick :: Tick -> SimplM () Source

getSimplCount :: SimplM SimplCount Source

zeroSimplCount :: DynFlags -> SimplCount Source

pprSimplCount :: SimplCount -> SDoc Source

plusSimplCount :: SimplCount -> SimplCount -> SimplCount Source

isZeroSimplCount :: SimplCount -> Bool Source