| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Control.Monad.Trans.Has
Documentation
class Has (t :: (* -> *) -> * -> *) m where Source #
The transformer stack m contains the transformer t.
Explicitly, m = t1 (t2 (t3 ... (tN m)...)),
and t is one of these t1, t2, ...s.
Methods
liftH :: (forall n. Monad n => t n a) -> m a Source #
Insert an action of this transformer into an arbitrary position in the stack.
This will apply lift as many times as necessary to insert the action.
The higher-rank type involving forall n basically says:
"The action to lift must only use the structure of the transformer,
not of a specific monad,
and is thus definable for any monad n".