tries-0.0.4.1: Various trie implementations in Haskell

Safe HaskellNone
LanguageHaskell2010

Data.Trie.Class

Contents

Synopsis

Documentation

class Trie p s t | t -> p where Source #

Class representing tries with single-threaded insertion, deletion, and lookup. forall ts ps a. isJust $ lookupPath ps (insertPath ps a ts) forall ts ps. isNothing $ lookupPath ps (deletePath ps ts)

Minimal complete definition

lookup, insert, delete

Methods

lookup :: p s -> t s a -> Maybe a Source #

insert :: p s -> a -> t s a -> t s a Source #

delete :: p s -> t s a -> t s a Source #

Instances

Trie Identity ByteString BSTrie Source # 
(Hashable p, Eq p) => Trie NonEmpty p HashMapTrie Source # 

Methods

lookup :: NonEmpty p -> HashMapTrie p a -> Maybe a Source #

insert :: NonEmpty p -> a -> HashMapTrie p a -> HashMapTrie p a Source #

delete :: NonEmpty p -> HashMapTrie p a -> HashMapTrie p a Source #

Eq s => Trie NonEmpty s KnuthTrie Source # 

Methods

lookup :: NonEmpty s -> KnuthTrie s a -> Maybe a Source #

insert :: NonEmpty s -> a -> KnuthTrie s a -> KnuthTrie s a Source #

delete :: NonEmpty s -> KnuthTrie s a -> KnuthTrie s a Source #

Eq s => Trie NonEmpty s ListTrie Source # 

Methods

lookup :: NonEmpty s -> ListTrie s a -> Maybe a Source #

insert :: NonEmpty s -> a -> ListTrie s a -> ListTrie s a Source #

delete :: NonEmpty s -> ListTrie s a -> ListTrie s a Source #

Ord s => Trie NonEmpty s MapTrie Source # 

Methods

lookup :: NonEmpty s -> MapTrie s a -> Maybe a Source #

insert :: NonEmpty s -> a -> MapTrie s a -> MapTrie s a Source #

delete :: NonEmpty s -> MapTrie s a -> MapTrie s a Source #

(Hashable p, Eq p, Trie NonEmpty p c) => Trie NonEmpty p (HashMapStep c) Source # 

Methods

lookup :: NonEmpty p -> HashMapStep c p a -> Maybe a Source #

insert :: NonEmpty p -> a -> HashMapStep c p a -> HashMapStep c p a Source #

delete :: NonEmpty p -> HashMapStep c p a -> HashMapStep c p a Source #

(Ord p, Trie NonEmpty p c) => Trie NonEmpty p (MapStep c) Source #

No insertion instance - requires children nodes to be a monoid. Use Data.Trie.Map.insert instead.

Methods

lookup :: NonEmpty p -> MapStep c p a -> Maybe a Source #

insert :: NonEmpty p -> a -> MapStep c p a -> MapStep c p a Source #

delete :: NonEmpty p -> MapStep c p a -> MapStep c p a Source #

lookupWithDefault :: Trie p s t => a -> p s -> t s a -> a Source #

member :: Trie p s t => p s -> t s a -> Bool Source #

notMember :: Trie p s t => p s -> t s a -> Bool Source #

Conversion

fromFoldable :: (Foldable f, Monoid (t s a), Trie p s t) => f (p s, a) -> t s a Source #

Ternary Map

ByteString-Trie

newtype BSTrie q a Source #

Embeds an empty ByteString passed around for type inference.

Constructors

BSTrie 

Fields