-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | BK-tree implementation -- -- Ternary Search Tree implementation. @package tst @version 0.1 -- | Implementation of a Ternary Search Tree: -- https://en.wikipedia.org/wiki/Ternary_search_tree, which is a -- structure useful to store any list-like thing. It is quite resistant -- to non-random data without needing rebalancing and can be as fast or -- faster than hash tables. -- -- The usual finite map operations are provided, plus utilities to match -- wildcarded words efficiently. module Data.TST data TST sym v empty :: Ord sym => TST sym v singleton :: Ord sym => [sym] -> v -> TST sym v insert :: Ord sym => [sym] -> v -> TST sym v -> TST sym v insertWith :: Ord sym => (v -> v -> v) -> [sym] -> v -> TST sym v -> TST sym v lookup :: Ord sym => [sym] -> TST sym v -> Maybe v -- | We don't need this and it's slow. But you've got to have a -- delete! delete :: Ord sym => [sym] -> TST sym v -> TST sym v toList :: Ord sym => TST sym v -> [([sym], v)] fromList :: Ord sym => [([sym], v)] -> TST sym v data WildCard a WildCard :: WildCard a El :: a -> WildCard a type WildList a = [WildCard a] matchWL :: Ord sym => WildList sym -> TST sym v -> [([sym], v)] instance Eq a => Eq (WildCard a) instance Ord a => Ord (WildCard a) instance Show a => Show (WildCard a) instance (Show sym, Ord sym, Show v) => Show (TST sym v) instance (Ord sym, Eq v) => Eq (TST sym v) -- | A wrapper for TST sym (). module Data.TSTSet data TSTSet sym empty :: Ord sym => TSTSet sym singleton :: Ord sym => [sym] -> TSTSet sym insert :: Ord sym => [sym] -> TSTSet sym -> TSTSet sym member :: Ord sym => [sym] -> TSTSet sym -> Bool delete :: Ord sym => [sym] -> TSTSet sym -> TSTSet sym toList :: Ord sym => TSTSet sym -> [[sym]] fromList :: Ord sym => [[sym]] -> TSTSet sym data WildCard a WildCard :: WildCard a El :: a -> WildCard a type WildList a = [WildCard a] matchWL :: Ord sym => WildList sym -> TSTSet sym -> [[sym]] instance (Show sym, Ord sym) => Show (TSTSet sym) instance Ord sym => Eq (TSTSet sym)