module IdeSession.Strict.Trie ( empty , submap , elems , fromListWith , toList ) where import Data.ByteString (ByteString) import qualified Data.Trie as Trie import qualified Data.Trie.Convenience as Trie import IdeSession.Strict.Container empty :: Strict Trie a empty = StrictTrie $ Trie.empty submap :: ByteString -> Strict Trie a -> Strict Trie a submap bs = StrictTrie . Trie.submap bs . toLazyTrie elems :: Strict Trie a -> [a] elems = Trie.elems . toLazyTrie fromListWith :: (a -> a -> a) -> [(ByteString, a)] -> Strict Trie a fromListWith f = force . Trie.fromListWith f toList :: Strict Trie a -> [(ByteString, a)] toList = Trie.toList . toLazyTrie