Safe Haskell | None |
---|---|
Language | Haskell2010 |
Abbreviations for constraints.
Documentation
Denotes MonadReader
. The mnemonic is that you read values of type r
from the reader environment tagged by tag
, thus the arrows points
from tag
to r
.
Denotes MonadWriter
. The mnemonic is that you write values of type w
to the writer accumulator tagged by tag
, thus the arrows points
from w
to tag
.
Denotes MonadState
. The mnemonic is that you can both read from and
write into the state, thus the arrow points in both directions.
type family Ether (abbrs :: [*]) m :: Constraint where ... Source #
Reify a list of constraint abbreviations.
f :: Ether '[Foo --> r, Bar <-- w, Baz <-> s, Quux -!- e] m => m a
expands into
f :: ( MonadReader Foo r m , MonadWriter Bar w m , MonadState Baz s m , MonadExcept Quux e m ) => m a