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.
class Functor (AlgRepT t) => AlgebraicT t whereSource
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
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) |