Safe Haskell | None |
---|---|
Language | Haskell98 |
Control.Effect.Reader
- newtype Reader (s :: [Mapping Symbol *]) a = IxR {}
- ask :: Var v -> Reader '[v :-> a] a
- merge :: Unionable s t => (a -> Reader (Union s t) b) -> Reader s (a -> Reader t b)
- data Mapping k v :: * -> * -> * = k :-> v
- data Var (k :: Symbol) :: Symbol -> * = Var
- class Submap (s :: [Mapping Symbol *]) (t :: [Mapping Symbol *])
- data Map (n :: [Mapping Symbol *]) :: [Mapping Symbol *] -> * where
Documentation
newtype Reader (s :: [Mapping Symbol *]) a Source #
Provides a effect-parameterised version of the class reader monad. Effects are sets of variable-type pairs, providing an effect system for reader effects.
Instances
merge :: Unionable s t => (a -> Reader (Union s t) b) -> Reader s (a -> Reader t b) Source #
Provides a way to emulated the ImplicitParams features of GHC/Haskell
data Mapping k v :: * -> * -> * #
A key-value pair
Constructors
k :-> v infixr 4 |
Instances
data Var (k :: Symbol) :: Symbol -> * #
Pair a symbol (representing a variable) with a type
Constructors
Var |
Instances
KnownSymbol k => Show (Var k) | |
class Submap (s :: [Mapping Symbol *]) (t :: [Mapping Symbol *]) #
Construct a submap s
from a supermap t
Minimal complete definition
data Map (n :: [Mapping Symbol *]) :: [Mapping Symbol *] -> * where #
A value-level heterogenously-typed Map (with type-level representation in terms of lists)
Constructors
Empty :: Map ([] (Mapping Symbol *)) | |
Ext :: Map ((:) (Mapping Symbol *) ((:->) Symbol * k v) m) |
Instances
(KnownSymbol k, Eq (Var k), Eq v, Eq (Map s)) => Eq (Map ((:) (Mapping Symbol *) ((:->) Symbol * k v) s)) | |
Eq (Map ([] (Mapping Symbol *))) | |
(KnownSymbol k, Show v, Show' (Map s)) => Show (Map ((:) (Mapping Symbol *) ((:->) Symbol * k v) s)) | |
Show (Map ([] (Mapping Symbol *))) | |
(KnownSymbol k, Show v, Show' (Map s)) => Show' (Map ((:) (Mapping Symbol *) ((:->) Symbol * k v) s)) | |
Show' (Map ([] (Mapping Symbol *))) | |