Safe Haskell  Safe 

Language  Haskell2010 
A control structure used to combine heterogenous types with delayed effects.
Documentation
A shade consists of a hidden value and an image of that value. The hidden values are stored in a context and cannot be accessed directly.
Monad m => Monad (Shade m) Source # 

Functor (Shade m) Source # 

Applicative m => Applicative (Shade m) Source # 

(Applicative m, Monoid b) => Monoid (Shade m b) Source # 

shade :: MonadShade m => c a > (a > b) > m c b Source #
Insert a contextual value and its projection into a shade.