pseudo-trie-0.0.2: A tagged rose-tree with short circuited unique leaves

Safe HaskellNone
LanguageHaskell2010

Data.Trie.Pseudo

Synopsis

Documentation

data PseudoTrie t a Source

Non-Empty Rose Tree with explicit emptyness

Constructors

More (t, Maybe a) (NonEmpty (PseudoTrie t a)) 
Rest (NonEmpty t) a 
Nil 

Instances

Functor (PseudoTrie t) 
Foldable (PseudoTrie t)

Depth first

(Eq t, Eq a) => Eq (PseudoTrie t a) 
(Show t, Show a) => Show (PseudoTrie t a) 
(Eq t, Default t, Monoid a) => Monoid (PseudoTrie t a) 

toAssocs :: Default t => PseudoTrie t a -> [(NonEmpty t, a)] Source

fromAssocs :: (Eq t, Default t) => [(NonEmpty t, a)] -> PseudoTrie t a Source

lookup :: Eq t => NonEmpty t -> PseudoTrie t a -> Maybe a Source

set :: (Eq t, Default t) => NonEmpty t -> a -> PseudoTrie t a -> PseudoTrie t a Source

unionWith :: (Eq t, Default t) => (a -> a -> a) -> PseudoTrie t a -> PseudoTrie t a -> PseudoTrie t a Source

intersectionWith :: (Eq t, Default t) => (a -> b -> c) -> PseudoTrie t a -> PseudoTrie t b -> PseudoTrie t c Source

prune :: (Eq t, Default t) => PseudoTrie t a -> PseudoTrie t a Source

Needless More elements are turned into Rest, Nil's in subtrees are also removed.