- data Elem2 a b
- data TernaryMap a b
- = TNode !(Elem2 a b) !(TernaryMap a b) !(TernaryMap a b) !(TernaryMap a b)
- | TEnd

- insert' :: Ord a => [a] -> b -> TernaryMap a b
- insert :: Ord a => [a] -> b -> TernaryMap a b -> TernaryMap a b
- isKey :: Ord a => [a] -> TernaryMap a b -> Bool
- getVal :: Ord a => [a] -> TernaryMap a b -> Maybe b
- treeSize :: TernaryMap a b -> Int
- numEntries :: TernaryMap a b -> Int
- fromList :: Ord a => [([a], b)] -> TernaryMap a b

# Documentation

Elem2 a b is used to hold elements of a list after insertion, and indicate that we've reached the end of the list.

data TernaryMap a b Source

TernaryMap a b is ternary tree. It is commonly used for storing word lists like dictionaries.

TNode !(Elem2 a b) !(TernaryMap a b) !(TernaryMap a b) !(TernaryMap a b) | |

TEnd |

Eq a => Eq (TernaryMap a b) | |

(Show a, Show b) => Show (TernaryMap a b) | |

(Binary a, Binary b) => Binary (TernaryMap a b) | This binary instance saves some space by making special cases of some commonly encountered structures in the trees. |

insert' :: Ord a => [a] -> b -> TernaryMap a bSource

Quickly build a tree without an initial tree. This should be used to create an initial tree, using insert there after.

insert :: Ord a => [a] -> b -> TernaryMap a b -> TernaryMap a bSource

Inserts an entries into a tree. Values with the same key will be replaced with the newer version.

isKey :: Ord a => [a] -> TernaryMap a b -> BoolSource

Returns true if the `[a]` is a key in the TernaryMap.

getVal :: Ord a => [a] -> TernaryMap a b -> Maybe bSource

treeSize :: TernaryMap a b -> IntSource

Returns the number of non-Val Elems

numEntries :: TernaryMap a b -> IntSource

Counts how many entries there are in the tree.

fromList :: Ord a => [([a], b)] -> TernaryMap a bSource

Creates a new tree from a list of `strings`