TrieMap-0.6.3: Automatic type inference of generalized tries.

Data.TrieMap.Regular

Documentation

type family TrieMapT f :: * -> * -> *Source

class OrdT f => TrieKeyT f m | m -> f, f -> mSource

Instances

TrieKeyT [] RadixTrie 
TrieKeyT I0 IMap 
TrieKeyT U0 M 
TrieKeyT Rev ReverseMap 
TrieKey k1 m1 => TrieKeyT (Either k1) (UMap m1) 
TrieKey k1 m1 => TrieKeyT ((,) k1) (PMap m1) 
(m ~ TrieMap k, TrieKey k m) => TrieKeyT (K0 k) (KMap m) 
(m ~ TrieMapT f, OrdT f, TrieKeyT f m) => TrieKeyT (L f) (RadixTrie f) 
TrieKeyT f m => TrieKeyT (App f) (AppMap m) 
(TrieKeyT f m1, TrieKeyT g m2) => TrieKeyT (:*: f g) (PMap m1 m2) 
(TrieKeyT f m1, TrieKeyT g m2) => TrieKeyT (:+: f g) (UnionMap m1 m2) 
(TrieKeyT f m, Functor f, TrieKeyT g (TrieMapT g)) => TrieKeyT (O f g) (CompMap m g) 

newtype K0 a r Source

Constructors

K0 

Fields

unK0 :: a
 

Instances

Functor (K0 a) 
Eq a => EqT (K0 a) 
Ord a => OrdT (K0 a) 
Repr a => ReprT (K0 a) 
(m ~ TrieMap k, TrieKey k m) => TrieKeyT (K0 k) (KMap m) 
Eq a => Eq (K0 a r) 
Ord a => Ord (K0 a r) 
Show a => Show (K0 a r) 
Repr a => Repr (K0 a b) 
(m ~ TrieMap k, TrieKey k m) => TrieKey (K0 k r) (KMap m r) 

newtype I0 r Source

Constructors

I0 

Fields

unI0 :: r
 

Instances

Functor I0 
EqT I0 
OrdT I0 
ReprT I0 
TrieKeyT I0 IMap 
Eq r => Eq (I0 r) 
Ord r => Ord (I0 r) 
Show r => Show (I0 r) 
Repr a[agxt] => Repr (I0 a[agxt]) 
TrieKey k (TrieMap k) => TrieKey (I0 k) (IMap k) 

data U0 r Source

Constructors

U0 

Instances

Functor U0 
EqT U0 
OrdT U0 
ReprT U0 
TrieKeyT U0 M 
Eq (U0 r) 
Ord (U0 r) 
Show (U0 r) 
Repr (U0 a) 
TrieKey (U0 r) (M r) 

data (f :*: g) r Source

Constructors

(f r) :*: (g r) 

Instances

(Functor f, Functor g) => Functor (:*: f g) 
(EqT f, EqT g) => EqT (:*: f g) 
(OrdT f, OrdT g) => OrdT (:*: f g) 
(ReprT f[agNI], ReprT g[agNJ]) => ReprT (:*: f[agNI] g[agNJ]) 
(TrieKeyT f m1, TrieKeyT g m2) => TrieKeyT (:*: f g) (PMap m1 m2) 
(EqT f, EqT g, Eq r) => Eq (:*: f g r) 
(OrdT f, OrdT g, Ord r) => Ord (:*: f g r) 
(Show (f r), Show (g r)) => Show (:*: f g r) 
(Repr a[agNQ], ReprT f[agNI], ReprT g[agNJ]) => Repr (:*: f[agNI] g[agNJ] a[agNQ]) 
(TrieKeyT f m1, TrieKeyT g m2, TrieKey k (TrieMap k)) => TrieKey (:*: f g k) (PMap m1 m2 k) 

data (f :+: g) r Source

Constructors

L (f r) 
R (g r) 

Instances

(Functor f, Functor g) => Functor (:+: f g) 
(EqT f, EqT g) => EqT (:+: f g) 
(OrdT f, OrdT g) => OrdT (:+: f g) 
(ReprT f[agZ4], ReprT g[agZ5]) => ReprT (:+: f[agZ4] g[agZ5]) 
(TrieKeyT f m1, TrieKeyT g m2) => TrieKeyT (:+: f g) (UnionMap m1 m2) 
(EqT f, EqT g, Eq r) => Eq (:+: f g r) 
(OrdT f, OrdT g, Ord r) => Ord (:+: f g r) 
(Show (f r), Show (g r)) => Show (:+: f g r) 
(Repr a[agZe], ReprT f[agZ4], ReprT g[agZ5]) => Repr (:+: f[agZ4] g[agZ5] a[agZe]) 
(TrieKeyT f m1, TrieKeyT g m2, TrieKey k (TrieMap k)) => TrieKey (:+: f g k) (UnionMap m1 m2 k) 

newtype L f r Source

Constructors

List [f r] 

Instances

Functor f => Functor (L f) 
EqT f => EqT (L f) 
OrdT f => OrdT (L f) 
ReprT f[agET] => ReprT (L f[agET]) 
(m ~ TrieMapT f, OrdT f, TrieKeyT f m) => TrieKeyT (L f) (RadixTrie f) 
(EqT f, Eq r) => Eq (L f r) 
(OrdT f, Ord r) => Ord (L f r) 
Show (f r) => Show (L f r) 
(Repr a[agEY], ReprT f[agET]) => Repr (L f[agET] a[agEY]) 
(OrdT f, TrieKeyT f (TrieMapT f), TrieKey k (TrieMap k)) => TrieKey (L f k) (RadixTrie f k) 

newtype O f g r Source

Constructors

O (f (g r)) 

Instances

(Functor f, Functor g) => Functor (O f g) 
(EqT f, EqT g) => EqT (O f g) 
(OrdT f, OrdT g) => OrdT (O f g) 
(ReprT f[ah89], ReprT g[ah8a]) => ReprT (O f[ah89] g[ah8a]) 
(TrieKeyT f m, Functor f, TrieKeyT g (TrieMapT g)) => TrieKeyT (O f g) (CompMap m g) 
(EqT f, EqT g, Eq r) => Eq (O f g r) 
(OrdT f, OrdT g, Ord r) => Ord (O f g r) 
(Repr a[ah8f], ReprT f[ah89], ReprT g[ah8a]) => Repr (O f[ah89] g[ah8a] a[ah8f]) 
(TrieKeyT f m, Functor f, TrieKeyT g (TrieMapT g), TrieKey k (TrieMap k)) => TrieKey (O f g k) (CompMap m g k) 

newtype Reg r Source

Constructors

Reg 

Fields

unReg :: r
 

Instances

(Regular a, Functor (PF a), EqT (PF a)) => Eq (Reg a) 
(Regular a, Functor (PF a), OrdT (PF a)) => Ord (Reg a) 
Show r => Show (Reg r) 
(m ~ TrieMapT (PF k), Regular k, Functor (PF k), TrieKeyT (PF k) m) => TrieKey (Reg k) (RegMap k m) 

newtype Fix f Source

Constructors

In 

Fields

out :: f (Fix f)
 

Instances

ReprT f => Repr (Fix f) 

type family PF a :: * -> *Source

class Regular a whereSource

Methods

from :: a -> PF a aSource

to :: PF a a -> aSource

from' :: (Functor (PF a), Regular a) => Reg a -> PF a (Reg a)Source

to' :: (Functor (PF a), Regular a) => PF a (Reg a) -> Reg aSource

partEithers :: [((f :+: g) r, a)] -> ([(f r, a)], [(g r, a)])Source

class EqT f whereSource

Methods

eqT0 :: (a -> a -> Bool) -> f a -> f a -> BoolSource

Instances

EqT [] 
EqT I0 
EqT U0 
EqT Rev 
EqT Ordered 
Eq a => EqT (Either a) 
Eq a => EqT ((,) a) 
Eq a => EqT (K0 a) 
EqT f => EqT (L f) 
EqT f => EqT (App f) 
(EqT f, EqT g) => EqT (:*: f g) 
(EqT f, EqT g) => EqT (:+: f g) 
(EqT f, EqT g) => EqT (O f g) 

type Comparator a = a -> a -> OrderingSource

class EqT f => OrdT f whereSource

Instances

OrdT [] 
OrdT I0 
OrdT U0 
OrdT Rev 
OrdT Ordered 
Ord a => OrdT (Either a) 
Ord a => OrdT ((,) a) 
Ord a => OrdT (K0 a) 
OrdT f => OrdT (L f) 
OrdT f => OrdT (App f) 
(OrdT f, OrdT g) => OrdT (:*: f g) 
(OrdT f, OrdT g) => OrdT (:+: f g) 
(OrdT f, OrdT g) => OrdT (O f g)