| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Ether.Abbr
Description
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