TernaryTrees-0.1.0.0: Efficient pure ternary tree Sets and Maps

Data.Set.TernarySet

Synopsis

Documentation

data TernarySet a Source

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

Instances

Eq a => Eq (TernarySet a) 
Show a => Show (TernarySet a) 
Binary a => Binary (TernarySet a)

This binary uses the fact that the number of TEnds can be represented in binary numbers to save a lot of space.

insert :: Ord a => [a] -> TernarySet a -> TernarySet aSource

Inserts an entries into a tree.

singleton :: Ord a => [a] -> TernarySet aSource

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

member :: Ord a => [a] -> TernarySet a -> BoolSource

Returns true if the `[a]` is in the TernarySet

size :: TernarySet a -> IntSource

Counts how many entries there are in the tree.

data Elem a Source

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

Constructors

C !a 
Null 

Instances

Eq a => Eq (Elem a) 
Ord a => Ord (Elem a)

All elements are greater than the Null Elem, otherwise they are ordered according to their own ord instance (for the `compare (C x) (C y)` case).

Show a => Show (Elem a) 
Binary a => Binary (Elem a)