{- | This module exposes internal representation of @TMap@. TMap has one invariant condition: * Subtrees of an @TMap@ should not be empty. For example, consider following tree structure which is valid: > > fromList [("a",1), ("aa", 2), ("bc", 3)] > Root > 'a' -> 1 > 'a' -> 2 > 'b' -> > 'c' -> 3 Adding redundant node which represents empty map does not change what an @TMap@ represents. > Root > 'a' -> 1 > 'a' -> 2 > 'b' -> > 'c' -> 3 > 'd' -> > 'e' -> > 'f' -> But such @TMap@ should not exist because it confuses @Eq@ and @Ord@ instances and @null@ function. -} module Data.Trie.Map.Internal( -- * Types TMap(..), Node(..), foldTMap, ) where import Data.Trie.Map.Hidden