| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
SimplMonad
Synopsis
- data SimplM result
 - initSmpl :: DynFlags -> RuleEnv -> (FamInstEnv, FamInstEnv) -> UniqSupply -> Int -> SimplM a -> IO (a, SimplCount)
 - traceSmpl :: String -> SDoc -> SimplM ()
 - getSimplRules :: SimplM RuleEnv
 - getFamEnvs :: SimplM (FamInstEnv, FamInstEnv)
 - class Monad m => MonadUnique m where
- getUniqueSupplyM :: m UniqSupply
 - getUniqueM :: m Unique
 - getUniquesM :: m [Unique]
 
 - newId :: FastString -> Type -> SimplM Id
 - newJoinId :: [Var] -> 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
Instances
| Monad SimplM Source # | |
| Functor SimplM Source # | |
| Applicative SimplM Source # | |
| MonadIO SimplM Source # | |
Defined in SimplMonad  | |
| MonadUnique SimplM Source # | |
Defined in SimplMonad Methods getUniqueSupplyM :: SimplM UniqSupply Source # getUniqueM :: SimplM Unique Source # getUniquesM :: SimplM [Unique] Source #  | |
| HasDynFlags SimplM Source # | |
Defined in SimplMonad Methods  | |
initSmpl :: DynFlags -> RuleEnv -> (FamInstEnv, FamInstEnv) -> UniqSupply -> Int -> SimplM a -> IO (a, SimplCount) Source #
getFamEnvs :: SimplM (FamInstEnv, FamInstEnv) Source #
class Monad m => MonadUnique m where Source #
A monad for generating unique identifiers
Minimal complete definition
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
data SimplCount Source #
checkedTick :: Tick -> SimplM () Source #
zeroSimplCount :: DynFlags -> SimplCount Source #
pprSimplCount :: SimplCount -> SDoc Source #
plusSimplCount :: SimplCount -> SimplCount -> SimplCount Source #
isZeroSimplCount :: SimplCount -> Bool Source #