TrieMap- An implementation of generalized tries with sophisticated map type inference.




class Algebraic k whereSource

Algebraic refers to a type with an algebraic representation, armed with methods to convert in each direction. toAlg and fromAlg should preserve equality and ordering.

Associated Types

type Alg k Source

Alg k is a fully decomposed representation of k into algebraic pieces.


toAlg :: k -> Alg kSource

fromAlg :: Alg k -> kSource


Algebraic Bool 
Algebraic Char 
Algebraic Double 
Algebraic Float 
Algebraic Int 
Algebraic Rational 
Algebraic () 
Algebraic IntSet 
Algebraic k => Algebraic [k] 
Algebraic a => Algebraic (Maybe a) 
Algebraic v => Algebraic (IntMap v) 
Algebraic a => Algebraic (Set a) 
(Algebraic k1, Algebraic k2) => Algebraic (Either k1 k2) 
(Algebraic k1, Algebraic k2) => Algebraic (k1, k2) 
(Algebraic k, Algebraic v) => Algebraic (Map k v) 
(Algebraic a, Algebraic b, Algebraic c) => Algebraic (a, b, c) 
(Ord k, Algebraic k, Algebraic v, TrieKey k m) => Algebraic (RadixTrie k m v) 
(Algebraic (m1 v), Algebraic (m2 v)) => Algebraic (UnionMap m1 m2 v) 
Algebraic (m1 (m2 v)) => Algebraic (ProdMap m1 m2 v) 
(Algebraic k, Algebraic a, TrieKey (Alg k) m) => Algebraic (TrieMap k m a) 
(Algebraic a, Algebraic b, Algebraic c, Algebraic d) => Algebraic (a, b, c, d) 
(Algebraic a, Algebraic b, Algebraic c, Algebraic d, Algebraic e) => Algebraic (a, b, c, d, e) 

newtype Ordered k Source




unOrd :: k


Functor Ordered 
Eq k => Eq (Ordered k) 
Ord k => Ord (Ordered k) 
Show k => Show (Ordered k) 
Ord k => TrieKey (Ordered k) (Map k)