DsMonad
- type DsM result = TcRnIf DsGblEnv DsLclEnv result
- mapM :: Monad m => (a -> m b) -> [a] -> m [b]
- mapAndUnzipM :: Monad m => (a -> m (b, c)) -> [a] -> m ([b], [c])
- initDs :: HscEnv -> Module -> GlobalRdrEnv -> TypeEnv -> DsM a -> IO (Messages, Maybe a)
- initDsTc :: DsM a -> TcM a
- fixDs :: (a -> DsM a) -> DsM a
- foldlM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
- foldrM :: Monad m => (b -> a -> m a) -> a -> [b] -> m a
- ifDOptM :: DynFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
- unsetOptM :: DynFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
- class Functor f => Applicative f where
- (<$>) :: Functor f => (a -> b) -> f a -> f b
- newLocalName :: Name -> TcRnIf gbl lcl Name
- duplicateLocalDs :: Id -> DsM Id
- newSysLocalDs :: Type -> DsM Id
- newSysLocalsDs :: [Type] -> DsM [Id]
- newUniqueId :: Id -> Type -> DsM Id
- newFailLocalDs :: Type -> DsM Id
- newPredVarDs :: PredType -> DsM Var
- getSrcSpanDs :: DsM SrcSpan
- putSrcSpanDs :: SrcSpan -> DsM a -> DsM a
- getModuleDs :: DsM Module
- newUnique :: TcRnIf gbl lcl Unique
- data UniqSupply
- newUniqueSupply :: TcRnIf gbl lcl UniqSupply
- getDOptsDs :: DsM DynFlags
- getGhcModeDs :: DsM GhcMode
- doptDs :: DynFlag -> TcRnIf gbl lcl Bool
- dsLookupGlobal :: Name -> DsM TyThing
- dsLookupGlobalId :: Name -> DsM Id
- dsLookupTyCon :: Name -> DsM TyCon
- dsLookupDataCon :: Name -> DsM DataCon
- dsLookupClass :: Name -> DsM Class
- type DsMetaEnv = NameEnv DsMetaVal
- data DsMetaVal
- dsLookupMetaEnv :: Name -> DsM (Maybe DsMetaVal)
- dsExtendMetaEnv :: DsMetaEnv -> DsM a -> DsM a
- dsLoadModule :: SDoc -> Module -> DsM ()
- type DsWarning = (SrcSpan, SDoc)
- warnDs :: SDoc -> DsM ()
- failWithDs :: SDoc -> DsM a
- data DsMatchContext = DsMatchContext (HsMatchContext Name) SrcSpan
- data EquationInfo = EqnInfo {
- eqn_pats :: [Pat Id]
- eqn_rhs :: MatchResult
- data MatchResult = MatchResult CanItFail (CoreExpr -> DsM CoreExpr)
- type DsWrapper = CoreExpr -> CoreExpr
- idDsWrapper :: DsWrapper
- data CanItFail
- orFail :: CanItFail -> CanItFail -> CanItFail
Documentation
mapAndUnzipM :: Monad m => (a -> m (b, c)) -> [a] -> m ([b], [c])Source
The mapAndUnzipM function maps its first argument over a list, returning
the result as a pair of lists. This function is mainly used with complicated
data structures or a state-transforming monad.
class Functor f => Applicative f whereSource
A functor with application.
Instances should satisfy the following laws:
- identity
-
pureid<*>v = v - composition
-
pure(.)<*>u<*>v<*>w = u<*>(v<*>w) - homomorphism
-
puref<*>purex =pure(f x) - interchange
-
u<*>purey =pure($y)<*>u - ignore left value
-
u*>v =pure(constid)<*>u<*>v - ignore right value
-
u<*v =pureconst<*>u<*>v
The Functor instance should satisfy
fmap f x = pure f <*> x
Methods
Lift a value.
(<*>) :: f (a -> b) -> f a -> f bSource
Sequential application.
(*>) :: f a -> f b -> f bSource
Sequence actions, discarding the value of the first argument.
(<*) :: f a -> f b -> f aSource
Sequence actions, discarding the value of the second argument.
Instances
| Applicative [] | |
| Applicative IO | |
| Applicative Maybe | |
| Applicative ZipList | |
| Applicative STM | |
| Applicative Id | |
| Applicative UniqSM | |
| Applicative CoreM | |
| Applicative ((->) a) | |
| Applicative (Either e) | |
| Monoid a => Applicative ((,) a) | |
| Monoid m => Applicative (Const m) | |
| Monad m => Applicative (WrappedMonad m) | |
| Applicative (State s) | |
| Applicative (State s) | |
| Applicative (IOEnv m) | |
| Arrow a => Applicative (WrappedArrow a b) |
newLocalName :: Name -> TcRnIf gbl lcl Name
duplicateLocalDs :: Id -> DsM Id
newSysLocalDs :: Type -> DsM Id
newSysLocalsDs :: [Type] -> DsM [Id]
newUniqueId :: Id -> Type -> DsM Id
newFailLocalDs :: Type -> DsM Id
newPredVarDs :: PredType -> DsM Var
putSrcSpanDs :: SrcSpan -> DsM a -> DsM a
getModuleDs :: DsM Module
data UniqSupply
A value of type UniqSupply is unique, and it can
supply one distinct Unique. Also, from the supply, one can
also manufacture an arbitrary number of further UniqueSupply values,
which will be distinct from the first and from all others.
newUniqueSupply :: TcRnIf gbl lcl UniqSupply
dsLookupGlobal :: Name -> DsM TyThing
dsLookupGlobalId :: Name -> DsM Id
dsLookupTyCon :: Name -> DsM TyCon
dsLookupDataCon :: Name -> DsM DataCon
dsLookupClass :: Name -> DsM Class
dsLookupMetaEnv :: Name -> DsM (Maybe DsMetaVal)
dsExtendMetaEnv :: DsMetaEnv -> DsM a -> DsM a
dsLoadModule :: SDoc -> Module -> DsM ()
failWithDs :: SDoc -> DsM a
data DsMatchContext
Constructors
| DsMatchContext (HsMatchContext Name) SrcSpan |
data EquationInfo
Instances
data MatchResult
Constructors
| MatchResult CanItFail (CoreExpr -> DsM CoreExpr) |