Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Data.Trie.Pseudo
- data PseudoTrie t a
- beginsWith :: Eq t => PseudoTrie t a -> t -> Bool
- assign :: Eq t => NonEmpty t -> Maybe a -> PseudoTrie t a -> PseudoTrie t a
- merge :: Eq t => PseudoTrie t a -> PseudoTrie t a -> PseudoTrie t a
- add :: Eq t => NonEmpty t -> PseudoTrie t a -> PseudoTrie t a -> PseudoTrie t a
- toAssocs :: PseudoTrie t a -> [(NonEmpty t, a)]
- fromAssocs :: Eq t => [(NonEmpty t, a)] -> PseudoTrie t a
- lookup :: Eq t => NonEmpty t -> PseudoTrie t a -> Maybe a
- areDisjoint :: Eq t => PseudoTrie t a -> PseudoTrie t a -> Bool
- intersectionWith :: Eq t => (a -> b -> c) -> PseudoTrie t a -> PseudoTrie t b -> PseudoTrie t c
- prune :: PseudoTrie t a -> PseudoTrie t a
Documentation
data PseudoTrie t a #
Tagged rose tree with explicit emptyness
Instances
Functor (PseudoTrie t) # | |
Foldable (PseudoTrie t) # | |
Traversable (PseudoTrie t) # | |
(Eq a, Eq t) => Eq (PseudoTrie t a) # | |
(Show a, Show t) => Show (PseudoTrie t a) # | |
Eq t => Monoid (PseudoTrie t a) # | Overwriting instance |
beginsWith :: Eq t => PseudoTrie t a -> t -> Bool #
assign :: Eq t => NonEmpty t -> Maybe a -> PseudoTrie t a -> PseudoTrie t a #
Provides a form of deletion by setting a path to Nothing
, but doesn't
cleanup like prune
merge :: Eq t => PseudoTrie t a -> PseudoTrie t a -> PseudoTrie t a #
Overwrite the LHS point-wise with the RHS's contents
add :: Eq t => NonEmpty t -> PseudoTrie t a -> PseudoTrie t a -> PseudoTrie t a #
toAssocs :: PseudoTrie t a -> [(NonEmpty t, a)] #
fromAssocs :: Eq t => [(NonEmpty t, a)] -> PseudoTrie t a #
areDisjoint :: Eq t => PseudoTrie t a -> PseudoTrie t a -> Bool #
Simple test on the heads of two tries
intersectionWith :: Eq t => (a -> b -> c) -> PseudoTrie t a -> PseudoTrie t b -> PseudoTrie t c #
The meet of two PseudoTrie
s
prune :: PseudoTrie t a -> PseudoTrie t a #
Needless intermediary elements are turned into shortcuts, Nil
's in
subtrees are also removed.