-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Automatic type inference of generalized tries. -- -- Builds on the multirec library to create a system capable of automatic -- or simple generalized trie type inference. @package TrieMap @version 0.5.4 module Data.TrieMap.Modifiers newtype Ordered a Ord :: a -> Ordered a unOrd :: Ordered a -> a newtype Rev k Rev :: k -> Rev k getRev :: Rev k -> k instance (Eq k) => Eq (Rev k) instance (Eq a) => Eq (Ordered a) instance (Ord a) => Ord (Ordered a) instance Functor Rev instance Functor Ordered instance (Ord k) => Ord (Rev k) module Data.TrieMap.Representation.TH type RepInfo = (Q Type, Q Exp, Q Exp) module Data.TrieMap.Representation class Repr a toRep :: (Repr a) => a -> Rep a fromRep :: (Repr a) => Rep a -> a class (Functor (RepT f)) => ReprT f toRepT :: (ReprT f) => f a -> RepT f a fromRepT :: (ReprT f) => RepT f a -> f a toRepTMap :: (ReprT f) => (a -> b) -> f a -> RepT f b fromRepTMap :: (ReprT f) => (b -> a) -> RepT f b -> f a module Data.TrieMap.MultiRec class (HOrd phi f) => HTrieKeyT phi :: (* -> *) f :: ((* -> *) -> * -> *) m | m -> phi f class (HOrd0 phi r) => HTrieKey phi :: (* -> *) r :: (* -> *) m | m -> phi r newtype Family phi :: (* -> *) ix F :: ix -> Family ix unF :: Family ix -> ix class (HEq phi f) => HOrd phi f compareH :: (HOrd phi f) => (forall ix. phi ix -> Comparator (r ix)) -> phi ix -> Comparator (f r ix) module Data.TrieMap.Regular class (OrdT f) => TrieKeyT f :: (* -> *) m :: (* -> * -> *) | m -> f, f -> m newtype K0 a r K0 :: a -> K0 a r unK0 :: K0 a r -> a newtype I0 r I0 :: r -> I0 r unI0 :: I0 r -> r data U0 r U0 :: U0 r data (:*:) f g r (:*:) :: f r -> g r -> :*: f g r data (:+:) f g r L :: (f r) -> :+: f g r R :: (g r) -> :+: f g r newtype L f r List :: [f r] -> L f r newtype O f g r O :: (f (g r)) -> O f g r newtype Reg r Reg :: r -> Reg r unReg :: Reg r -> r newtype Fix f In :: f (Fix f) -> Fix f out :: Fix f -> f (Fix f) class Regular a from :: (Regular a) => a -> PF a a to :: (Regular a) => PF a a -> a from' :: (Functor (PF a), Regular a) => Reg a -> PF a (Reg a) to' :: (Functor (PF a), Regular a) => PF a (Reg a) -> Reg a partEithers :: [((f :+: g) r, a)] -> ([(f r, a)], [(g r, a)]) class EqT f eqT0 :: (EqT f) => (a -> a -> Bool) -> f a -> f a -> Bool type Comparator a = a -> a -> Ordering class (EqT f) => OrdT f compareT0 :: (OrdT f) => Comparator a -> Comparator (f a) module Data.TrieMap.Class newtype TMap k a TMap :: TrieMap (Rep k) (Elem a) -> TMap k a getTMap :: TMap k a -> TrieMap (Rep k) (Elem a) newtype TSet a TSet :: (TMap a ()) -> TSet a class (Repr k, TrieKey (Rep k) (TrieMap (Rep k))) => TKey k class (ReprT f, TrieKeyT (RepT f) (TrieMapT (RepT f))) => TKeyT f class (Ord k) => TrieKey k m | m -> k instance (TKey k) => Traversable (TMap k) instance (TKey k) => Foldable (TMap k) instance (TKey k) => Functor (TMap k) instance (ReprT f, TrieKeyT (RepT f) (TrieMapT (RepT f))) => TKeyT f instance (Repr k, TrieKey (Rep k) (TrieMap (Rep k))) => TKey k module Data.TrieMap class (Repr k, TrieKey (Rep k) (TrieMap (Rep k))) => TKey k data TMap k a (!) :: (TKey k) => TMap k a -> k -> a (\\) :: (TKey k) => TMap k a -> TMap k b -> TMap k a null :: (TKey k) => TMap k a -> Bool size :: (TKey k) => TMap k a -> Int member :: (TKey k) => k -> TMap k a -> Bool notMember :: (TKey k) => k -> TMap k a -> Bool lookup :: (TKey k) => k -> TMap k a -> Maybe a findWithDefault :: (TKey k) => a -> k -> TMap k a -> a empty :: (TKey k) => TMap k a singleton :: (TKey k) => k -> a -> TMap k a insert :: (TKey k) => k -> a -> TMap k a -> TMap k a insertWith :: (TKey k) => (a -> a -> a) -> k -> a -> TMap k a -> TMap k a insertWithKey :: (TKey k) => (k -> a -> a -> a) -> k -> a -> TMap k a -> TMap k a delete :: (TKey k) => k -> TMap k a -> TMap k a adjust :: (TKey k) => (a -> a) -> k -> TMap k a -> TMap k a adjustWithKey :: (TKey k) => (k -> a -> a) -> k -> TMap k a -> TMap k a update :: (TKey k) => (a -> Maybe a) -> k -> TMap k a -> TMap k a updateWithKey :: (TKey k) => (k -> a -> Maybe a) -> k -> TMap k a -> TMap k a alter :: (TKey k) => (Maybe a -> Maybe a) -> k -> TMap k a -> TMap k a union :: (TKey k) => TMap k a -> TMap k a -> TMap k a unionWith :: (TKey k) => (a -> a -> a) -> TMap k a -> TMap k a -> TMap k a unionWithKey :: (TKey k) => (k -> a -> a -> a) -> TMap k a -> TMap k a -> TMap k a unionMaybeWith :: (TKey k) => (a -> a -> Maybe a) -> TMap k a -> TMap k a -> TMap k a unionMaybeWithKey :: (TKey k) => (k -> a -> a -> Maybe a) -> TMap k a -> TMap k a -> TMap k a difference :: (TKey k) => TMap k a -> TMap k b -> TMap k a differenceWith :: (TKey k) => (a -> b -> Maybe a) -> TMap k a -> TMap k b -> TMap k a differenceWithKey :: (TKey k) => (k -> a -> b -> Maybe a) -> TMap k a -> TMap k b -> TMap k a intersection :: (TKey k) => TMap k a -> TMap k b -> TMap k a intersectionWith :: (TKey k) => (a -> b -> c) -> TMap k a -> TMap k b -> TMap k c intersectionWithKey :: (TKey k) => (k -> a -> b -> c) -> TMap k a -> TMap k b -> TMap k c intersectionMaybeWith :: (TKey k) => (a -> b -> Maybe c) -> TMap k a -> TMap k b -> TMap k c intersectionMaybeWithKey :: (TKey k) => (k -> a -> b -> Maybe c) -> TMap k a -> TMap k b -> TMap k c map :: (TKey k) => (a -> b) -> TMap k a -> TMap k b mapWithKey :: (TKey k) => (k -> a -> b) -> TMap k a -> TMap k b mapKeys :: (TKey k, TKey k') => (k -> k') -> TMap k a -> TMap k' a mapKeysWith :: (TKey k, TKey k') => (a -> a -> a) -> (k -> k') -> TMap k a -> TMap k' a mapKeysMonotonic :: (TKey k, TKey k') => (k -> k') -> TMap k a -> TMap k' a traverseWithKey :: (TKey k, Applicative f) => (k -> a -> f b) -> TMap k a -> f (TMap k b) fold :: (TKey k) => (a -> b -> b) -> b -> TMap k a -> b foldWithKey :: (TKey k) => (k -> a -> b -> b) -> b -> TMap k a -> b foldrWithKey :: (TKey k) => (k -> a -> b -> b) -> b -> TMap k a -> b foldlWithKey :: (TKey k) => (b -> k -> a -> b) -> b -> TMap k a -> b elems :: (TKey k) => TMap k a -> [a] keys :: (TKey k) => TMap k a -> [k] assocs :: (TKey k) => TMap k a -> [(k, a)] fromList :: (TKey k) => [(k, a)] -> TMap k a fromListWith :: (TKey k) => (a -> a -> a) -> [(k, a)] -> TMap k a fromListWithKey :: (TKey k) => (k -> a -> a -> a) -> [(k, a)] -> TMap k a fromAscList :: (TKey k) => [(k, a)] -> TMap k a fromAscListWith :: (TKey k) => (a -> a -> a) -> [(k, a)] -> TMap k a fromAscListWithKey :: (TKey k) => (k -> a -> a -> a) -> [(k, a)] -> TMap k a fromDistinctAscList :: (TKey k) => [(k, a)] -> TMap k a filter :: (TKey k) => (a -> Bool) -> TMap k a -> TMap k a filterWithKey :: (TKey k) => (k -> a -> Bool) -> TMap k a -> TMap k a partition :: (TKey k) => (a -> Bool) -> TMap k a -> (TMap k a, TMap k a) partitionWithKey :: (TKey k) => (k -> a -> Bool) -> TMap k a -> (TMap k a, TMap k a) mapMaybe :: (TKey k) => (a -> Maybe b) -> TMap k a -> TMap k b mapMaybeWithKey :: (TKey k) => (k -> a -> Maybe b) -> TMap k a -> TMap k b mapEither :: (TKey k) => (a -> Either b c) -> TMap k a -> (TMap k b, TMap k c) mapEitherWithKey :: (TKey k) => (k -> a -> Either b c) -> TMap k a -> (TMap k b, TMap k c) split :: (TKey k) => k -> TMap k a -> (TMap k a, TMap k a) splitLookup :: (TKey k) => k -> TMap k a -> (TMap k a, Maybe a, TMap k a) isSubmapOf :: (TKey k, Eq a) => TMap k a -> TMap k a -> Bool isSubmapOfBy :: (TKey k) => (a -> b -> Bool) -> TMap k a -> TMap k b -> Bool -- | predecessor k a returns the index, key, and value of -- the immediate predecessor of k in the map. The predecessor is -- the element with the largest key < k. predecessor :: (TKey k) => k -> TMap k a -> Maybe (Int, k, a) lookupWithIndex :: (TKey k) => k -> TMap k a -> Maybe (Int, k, a) successor :: (TKey k) => k -> TMap k a -> Maybe (Int, k, a) neighborhood :: (TKey k) => k -> TMap k a -> (Maybe (Int, k, a), Maybe (Int, k, a), Maybe (Int, k, a)) lookupIndex :: (TKey k) => k -> TMap k a -> Maybe Int predecessorAt :: (TKey k) => Int -> TMap k a -> Maybe (Int, k, a) lookupAt :: (TKey k) => Int -> TMap k a -> Maybe (Int, k, a) successorAt :: (TKey k) => Int -> TMap k a -> Maybe (Int, k, a) neighborhoodAt :: (TKey k) => Int -> TMap k a -> (Maybe (Int, k, a), Maybe (Int, k, a), Maybe (Int, k, a)) findMin :: (TKey k) => TMap k a -> (k, a) findMax :: (TKey k) => TMap k a -> (k, a) deleteMin :: (TKey k) => TMap k a -> TMap k a deleteMax :: (TKey k) => TMap k a -> TMap k a deleteFindMin :: (TKey k) => TMap k a -> ((k, a), TMap k a) deleteFindMax :: (TKey k) => TMap k a -> ((k, a), TMap k a) updateMin :: (TKey k) => (a -> Maybe a) -> TMap k a -> TMap k a updateMax :: (TKey k) => (a -> Maybe a) -> TMap k a -> TMap k a updateMinWithKey :: (TKey k) => (k -> a -> Maybe a) -> TMap k a -> TMap k a updateMaxWithKey :: (TKey k) => (k -> a -> Maybe a) -> TMap k a -> TMap k a minView :: (TKey k) => TMap k a -> Maybe (a, TMap k a) maxView :: (TKey k) => TMap k a -> Maybe (a, TMap k a) minViewWithKey :: (TKey k) => TMap k a -> Maybe ((k, a), TMap k a) maxViewWithKey :: (TKey k) => TMap k a -> Maybe ((k, a), TMap k a) instance (TKey k) => Monoid (TMap k a) instance (Ord k, TKey k, Ord a) => Ord (TMap k a) instance (Eq k, TKey k, Eq a) => Eq (TMap k a) instance (Show k, Show a, TKey k) => Show (TMap k a) module Data.TrieSet data TSet a (\\) :: (TKey a) => TSet a -> TSet a -> TSet a null :: (TKey a) => TSet a -> Bool size :: (TKey a) => TSet a -> Int member :: (TKey a) => a -> TSet a -> Bool notMember :: (TKey a) => a -> TSet a -> Bool isSubsetOf :: (TKey a) => TSet a -> TSet a -> Bool isProperSubsetOf :: (TKey a) => TSet a -> TSet a -> Bool empty :: (TKey a) => TSet a singleton :: (TKey a) => a -> TSet a insert :: (TKey a) => a -> TSet a -> TSet a delete :: (TKey a) => a -> TSet a -> TSet a union :: (TKey a) => TSet a -> TSet a -> TSet a symmetricDifference :: (TKey a) => TSet a -> TSet a -> TSet a intersection :: (TKey a) => TSet a -> TSet a -> TSet a difference :: (TKey a) => TSet a -> TSet a -> TSet a filter :: (TKey a) => (a -> Bool) -> TSet a -> TSet a partition :: (TKey a) => (a -> Bool) -> TSet a -> (TSet a, TSet a) split :: (TKey a) => a -> TSet a -> (TSet a, TSet a) splitMember :: (TKey a) => a -> TSet a -> (TSet a, Bool, TSet a) map :: (TKey a, TKey b) => (a -> b) -> TSet a -> TSet b mapMonotonic :: (TKey a, TKey b) => (a -> b) -> TSet a -> TSet b fold :: (TKey a) => (a -> b -> b) -> b -> TSet a -> b foldl :: (TKey b) => (a -> b -> a) -> a -> TSet b -> a foldr :: (TKey a) => (a -> b -> b) -> b -> TSet a -> b findMin :: (TKey a) => TSet a -> a findMax :: (TKey a) => TSet a -> a deleteMin :: (TKey a) => TSet a -> TSet a deleteMax :: (TKey a) => TSet a -> TSet a deleteFindMin :: (TKey a) => TSet a -> (a, TSet a) deleteFindMax :: (TKey a) => TSet a -> (a, TSet a) minView :: (TKey a) => TSet a -> Maybe (a, TSet a) maxView :: (TKey a) => TSet a -> Maybe (a, TSet a) elems :: (TKey a) => TSet a -> [a] toList :: (TKey a) => TSet a -> [a] fromList :: (TKey a) => [a] -> TSet a toAscList :: (TKey a) => TSet a -> [a] fromAscList :: (TKey a) => [a] -> TSet a fromDistinctAscList :: (TKey a) => [a] -> TSet a instance (TKey a) => Monoid (TSet a) instance (TKey a, Show a) => Show (TSet a) instance (TKey a, Ord a) => Ord (TSet a) instance (TKey a) => Eq (TSet a)