gmap-0.1: Composable maps and generic tries.

Data.GMap.InjectKeys

Contents

Synopsis

InjectKeys type

data InjectKeys t k1 k2 map a Source

Instances

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

Methods

inject :: t -> k1 -> k2Source

outject :: t -> k2 -> k1Source

Instances

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))))