TrieMap-4.0.1: Automatic type inference of generalized tries with Template Haskell.

Data.TrieMap.Modifiers

Description

Operators for use in Repr instances for types.

Synopsis

Documentation

newtype Ordered a Source

Denotes that maps on this type should be implemented with traditional binary search trees.

Constructors

Ord 

Fields

unOrd :: a
 

Instances

Functor Ordered 
Eq a => Eq (Ordered a) 
Functor (TrieMap (Ordered k)) 
Ord a => Ord (Ordered a) 
Foldable (TrieMap (Ordered k)) 
Traversable (TrieMap (Ordered k)) 
Ord k => Subset (TrieMap (Ordered k)) 
Ord k => SetOp (TrieMap (Ordered k)) 
Ord k => Project (TrieMap (Ordered k)) 
Ord k => TrieKey (Ordered k)

TrieMap (Ordered k) a is based on Data.Map.

Ord k => Buildable (TrieMap (Ordered k)) (Ordered k) 

newtype Rev k Source

Denotes that maps on this type should be treated as reversed. For instance, Rep Int might be implemented as Either (Rev Word) Word, to handle negative numbers properly.

Constructors

Rev 

Fields

getRev :: k
 

Instances

Functor Rev 
Eq k => Eq (Rev k) 
(TrieKey k, Functor (TrieMap k)) => Functor (TrieMap (Rev k)) 
Ord k => Ord (Rev k) 
(TrieKey k, Foldable (TrieMap k)) => Foldable (TrieMap (Rev k)) 
(TrieKey k, Traversable (TrieMap k)) => Traversable (TrieMap (Rev k)) 
(TrieKey k, Subset (TrieMap k)) => Subset (TrieMap (Rev k)) 
(TrieKey k, SetOp (TrieMap k)) => SetOp (TrieMap (Rev k)) 
(TrieKey k, Project (TrieMap k)) => Project (TrieMap (Rev k)) 
TrieKey k => TrieKey (Rev k)

TrieMap (Rev k) a is a wrapper around a TrieMap k a that reverses the order of the operations.

TrieKey k => Buildable (TrieMap (Rev k)) (Rev k) 

newtype Key k Source

Indicates that the map for this type should be bootstrapped from its TKey instance. This modifier is necessary to define a TKey instance for a recursively defined type. For example:

 data Tree = Node Char [Tree]
 
 instance 'Repr' Tree where
 	type 'Rep' Tree = ('Rep' 'Char', ['Key' Tree])
 	'toRep' (Node label children) = ('toRep' label, 'map' 'Key' children)
 	...

Constructors

Key 

Fields

getKey :: k
 

Instances

(Repr k, Eq (Rep k)) => Eq (Key k) 
(Repr k, TrieKey (Rep k), Functor (RepMap k)) => Functor (TrieMap (Key k)) 
(Repr k, Ord (Rep k)) => Ord (Key k) 
(Repr k, TrieKey (Rep k), Foldable (RepMap k)) => Foldable (TrieMap (Key k)) 
(Repr k, TrieKey (Rep k), Traversable (RepMap k)) => Traversable (TrieMap (Key k)) 
(Repr k, TrieKey (Rep k), Subset (RepMap k)) => Subset (TrieMap (Key k)) 
Repr k => Repr (Key k) 
(Repr k, TrieKey (Rep k), SetOp (RepMap k)) => SetOp (TrieMap (Key k)) 
(Repr k, TrieKey (Rep k), Project (RepMap k)) => Project (TrieMap (Key k)) 
TKey k => TrieKey (Key k)

TrieMap (Key k) a is a wrapper around a TrieMap (Rep k) a.

(Repr k, TrieKey (Rep k), Buildable (RepMap k) (Rep k)) => Buildable (TrieMap (Key k)) (Key k)