- data InjectKeys t k1 k2 map a
- class Injection t k1 k2 | t -> k1, t -> k2 where
InjectKeys type
data InjectKeys t k1 k2 map a Source
Map map k2 => Functor (InjectKeys t k1 k2 map) | |
Typeable1 map => Typeable1 (InjectKeys t k1 k2 map) | |
Map map k2 => Foldable (InjectKeys t k1 k2 map) | |
(Eq k1, Injection t k1 k2, OrderedMap map k2) => OrderedMap (InjectKeys t k1 k2 map) k1 | |
(Eq k1, Injection t k1 k2, Map map k2) => Map (InjectKeys t k1 k2 map) k1 | InjectKeys is an instance of Map. |
Eq (map a) => Eq (InjectKeys t k1 k2 map a) | |
Ord (map a) => Ord (InjectKeys t k1 k2 map a) | |
(Typeable1 (InjectKeys t k1 k2 map), Typeable a) => Typeable (InjectKeys t k1 k2 map a) | |
(Map map k2, Monoid a) => Monoid (InjectKeys t k1 k2 map a) |
class Injection t k1 k2 | t -> k1, t -> k2 whereSource
t
is a phantom type which determines the encoding and decoding functions used.
t
is passed as an undefined value.
inject
must be injective (ie (inject a) == (inject b) implies a == b) and reversible by outject
Enum k => Injection (InjectEnum k) k Int | |
Injection (InjectMaybe k) (Maybe k) (Choice2 k ()) | |
Injection (InjectEither l r) (Either l r) (Choice2 l r) | |
Injection (InjectChoice3 a b c) (Choice3 a b c) (Choice2 a (Choice2 b c)) | |
Injection (InjectTuple3 a b c) (a, b, c) (a, (b, c)) | |
Injection (InjectChoice4 a b c d) (Choice4 a b c d) (Choice2 (Choice2 a b) (Choice2 c d)) | |
Injection (InjectTuple4 a b c d) (a, b, c, d) (a, (b, (c, d))) | |
Injection (InjectChoice5 a b c d e) (Choice5 a b c d e) (Choice2 (Choice2 a b) (Choice2 c (Choice2 d e))) | |
Injection (InjectTuple5 a b c d e) (a, b, c, d, e) (a, (b, (c, (d, e)))) |