tries-0.0.4: Various trie implementations in Haskell

Safe HaskellNone
LanguageHaskell2010

Data.Trie.HashMap

Contents

Synopsis

One Step

data HashMapChildren c p a Source

Constructors

HashMapChildren 

Fields

hashMapNode :: Maybe a
 
hashMapChildren :: !(Maybe (c p a))
 

Instances

Functor (c p) => Functor (HashMapChildren c p) Source 
Foldable (c p) => Foldable (HashMapChildren c p) Source 
Traversable (c p) => Traversable (HashMapChildren c p) Source 
(Eq a, Eq (c p a)) => Eq (HashMapChildren c p a) Source 
(Data a, Data (c p a), Typeable (* -> * -> *) c, Typeable * p) => Data (HashMapChildren c p a) Source 
(Show a, Show (c p a)) => Show (HashMapChildren c p a) Source 
Generic (HashMapChildren c p a) Source 
Monoid (c p a) => Monoid (HashMapChildren c p a) Source 
(NFData (c p a), NFData p, NFData a) => NFData (HashMapChildren c p a) Source 
(Arbitrary a, Arbitrary p, Arbitrary (c p a)) => Arbitrary (HashMapChildren c p a) Source 
type Rep (HashMapChildren c p a) Source 

newtype HashMapStep c p a Source

Constructors

HashMapStep 

Fields

unHashMapStep :: HashMap p (HashMapChildren c p a)
 

Instances

(Hashable p, Eq p, Trie NonEmpty p c) => Trie NonEmpty p (HashMapStep c) Source 
Functor (c p) => Functor (HashMapStep c p) Source 
Foldable (c p) => Foldable (HashMapStep c p) Source 
Traversable (c p) => Traversable (HashMapStep c p) Source 
(Eq p, Eq a, Eq (c p a)) => Eq (HashMapStep c p a) Source 
(Eq p, Data p, Data a, Data (c p a), Typeable (* -> * -> *) c, Hashable p) => Data (HashMapStep c p a) Source 
(Show p, Show a, Show (c p a)) => Show (HashMapStep c p a) Source 
Generic (HashMapStep c p a) Source 
(Hashable p, Eq p, Monoid (c p a)) => Monoid (HashMapStep c p a) Source 
(NFData (c p a), NFData p, NFData a) => NFData (HashMapStep c p a) Source 
(Arbitrary a, Arbitrary p, Arbitrary (c p a), Hashable p, Eq p) => Arbitrary (HashMapStep c p a) Source 
type Rep (HashMapStep c p a) Source 

insert :: (Hashable p, Eq p, Trie NonEmpty p c, Monoid (c p a)) => NonEmpty p -> a -> HashMapStep c p a -> HashMapStep c p a Source

singleton :: Hashable p => p -> a -> HashMapStep c p a Source

Fixpoint of Steps

newtype HashMapTrie p a Source

Constructors

HashMapTrie 

Instances

(Hashable p, Eq p) => Trie NonEmpty p HashMapTrie Source 
Functor (HashMapTrie p) Source 
Foldable (HashMapTrie p) Source 
Traversable (HashMapTrie p) Source 
(Hashable p, Eq p) => Lookup (HashMapTrie p) Source 
(Eq p, Eq a) => Eq (HashMapTrie p a) Source 
(Show p, Show a) => Show (HashMapTrie p a) Source 
(Eq p, Hashable p) => Monoid (HashMapTrie p a) Source 
(Eq p, Hashable p, Arbitrary p, Arbitrary a) => Arbitrary (HashMapTrie p a) Source 
type Key (HashMapTrie p) = NonEmpty p Source 

Conversion

keys :: (Hashable p, Eq p) => HashMapTrie p a -> [NonEmpty p] Source

elems :: HashMapTrie p a -> [a] Source

Query

subtrie :: (Hashable p, Eq p) => NonEmpty p -> HashMapTrie p a -> Maybe (HashMapTrie p a) Source

match :: (Hashable p, Eq p) => NonEmpty p -> HashMapTrie p a -> Maybe (NonEmpty p, a, [p]) Source

matches :: (Hashable p, Eq p) => NonEmpty p -> HashMapTrie p a -> [(NonEmpty p, a, [p])] Source

Returns a list of all the nodes along the path to the furthest point in the query, in order of the path walked from the root to the furthest point.