trie-simple-0.4.1.1: src/Data/Trie/Set/Internal.hs
{- |
This module exposes internal representation of @TSet@.
TSet has one invariant condition:
* Subtrees of an @TSet@ should not be empty.
For example, consider following tree structure which is valid:
> > fromList ["a", "aa", "bc"]
> Root -> False
> 'a' -> True
> 'a' -> True
> 'b' -> False
> 'c' -> True
Adding redundant node which represents empty set does not change
what an @TSet@ represents.
> Root -> False
> 'a' -> True
> 'a' -> True
> 'b' -> False
> 'c' -> True
> 'd' -> False
> 'e' -> False
> 'f' -> False
But such @TSet@ should not exist because it confuses @Eq@ and @Ord@ instances and @null@ function.
-}
module Data.Trie.Set.Internal(
TSet(..),
Node(..),
foldTSet, paraTSet
)
where
import Data.Trie.Set.Hidden