TrieMap.Algebraic
Documentation
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
is a fully decomposed representation of k into algebraic pieces.
AlgRep k
Instances
class Functor (AlgRepT t) => AlgebraicT t whereSource
Instances
| AlgebraicT [] | |
| AlgebraicT Maybe | |
| AlgebraicT IntMap | |
| AlgebraicT Set | |
| AlgebraicT Id | |
| Algebraic a => AlgebraicT (Either a) | |
| Algebraic a => AlgebraicT ((,) a) | |
| Algebraic k => AlgebraicT (Map k) | |
| AlgebraicT f => AlgebraicT (App f) | |
| Algebraic a => AlgebraicT (Const a) | |
| (Algebraic a, Algebraic b) => AlgebraicT ((,,) a b) | |
| (AlgebraicT f, AlgebraicT g) => AlgebraicT (O f g) | |
| (AlgebraicT f, AlgebraicT g) => AlgebraicT (:+: f g) | |
| (AlgebraicT f, AlgebraicT g) => AlgebraicT (:*: f g) | |
| SAlgebraicT m => AlgebraicT (TrieMap k m) | |
| (Algebraic a, Algebraic b, Algebraic c) => AlgebraicT ((,,,) a b c) |
class Functor (SAlgRepT t) => SAlgebraicT t whereSource
Instances
| SAlgebraicT Maybe | |
| SAlgebraicT IntMap | |
| Algebraic k => SAlgebraicT (Map k) | |
| SAlgebraicT f => SAlgebraicT (App f) | |
| SAlgebraicT m => SAlgebraicT (IdMap k m) | |
| (Algebraic k, TrieKey k m) => SAlgebraicT (RadixTrie k m) | |
| TrieKeyT f t => SAlgebraicT (FixMap f t) | |
| SAlgebraicT m => SAlgebraicT (ConstMap m k m') | |
| (SAlgebraicT m1, SAlgebraicT m2) => SAlgebraicT (CUnionMap m1 k2 m2) | |
| (SAlgebraicT m1, SAlgebraicT m2, TrieKey k2 m2) => SAlgebraicT (CProdMap m1 k2 m2) | |
| (SAlgebraicT (t1 k m), SAlgebraicT (t2 k m)) => SAlgebraicT (UnionMap t1 t2 k m) | |
| (SAlgebraicT (t1 k m), SAlgebraicT (t2 k m), TrieKey k m, TrieKeyT f2 t2) => SAlgebraicT (ProdMap t1 t2 k m) | |
| SAlgebraicT (t1 (App f2 k) (App (t2 k m))) => SAlgebraicT (CompMap t1 f2 t2 k m) |