|
|
|
Description |
Provides some pliant data types and functions.
|
|
Synopsis |
|
data a :*: b = a :*: b | | class Has e s where | inj :: e -> s -> s | prj :: s -> e |
| | upd :: Has e s => (e -> e) -> s -> s |
|
|
Documentation |
|
|
Represents Type level list.
| Constructors | | Instances | (MayHave e h, MayHave e t) => MayHave e (:*: h t) | (TyOr x y b, Contains e h x, Contains e t y) => Contains e (:*: h t) b | (Bounded a, Bounded b) => Bounded (:*: a b) | (Eq a, Eq b) => Eq (:*: a b) | (Ord a, Ord b) => Ord (:*: a b) | (Read a, Read b) => Read (:*: a b) | (Show a, Show b) => Show (:*: a b) | (Arbitrary a, Arbitrary b) => Arbitrary (:*: a b) | (CoArbitrary a, CoArbitrary b) => CoArbitrary (:*: a b) | (Monoid a, Monoid b) => Monoid (:*: a b) |
|
|
|
|
Provides plient function. Holds e == prj (inj e s) for all s and e.
| | Methods | | Injects a value of type e into s if s contains the type e.
| | | Projects a value of type e out from s if s contains the type e.
|
| | Instances | (MayHave e s, Contains e s TyTrue) => Has e s |
|
|
|
|
Updates a value e in s, using given function e -> e.
|
|
Produced by Haddock version 2.6.0 |