-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Keyed functors and containers
--
-- Keyed functors and containers
@package keys
@version 2.0
module Data.Key
class Functor f => Keyed f
mapWithKey :: Keyed f => (Key f -> a -> b) -> f a -> f b
(<#$>) :: Keyed f => (Key f -> a -> b) -> f a -> f b
keyed :: Keyed f => f a -> f (Key f, a)
class Functor f => Zip f
zipWith :: Zip f => (a -> b -> c) -> f a -> f b -> f c
zip :: Zip f => f a -> f b -> f (a, b)
zap :: Zip f => f (a -> b) -> f a -> f b
class (Keyed f, Zip f) => ZipWithKey f
zipWithKey :: ZipWithKey f => (Key f -> a -> b -> c) -> f a -> f b -> f c
zapWithKey :: ZipWithKey f => f (Key f -> a -> b) -> f a -> f b
class Lookup f => Indexable f
index :: Indexable f => f a -> Key f -> a
(!) :: Indexable f => f a -> Key f -> a
class Lookup f
lookup :: Lookup f => Key f -> f a -> Maybe a
lookupDefault :: Indexable f => Key f -> f a -> Maybe a
class Functor f => Adjustable f
adjust :: Adjustable f => (a -> a) -> Key f -> f a -> f a
replace :: Adjustable f => Key f -> a -> f a -> f a
class Foldable t => FoldableWithKey t
toKeyedList :: FoldableWithKey t => t a -> [(Key t, a)]
foldMapWithKey :: (FoldableWithKey t, Monoid m) => (Key t -> a -> m) -> t a -> m
foldrWithKey :: FoldableWithKey t => (Key t -> a -> b -> b) -> b -> t a -> b
foldlWithKey :: FoldableWithKey t => (b -> Key t -> a -> b) -> b -> t a -> b
foldrWithKey' :: FoldableWithKey t => (Key t -> a -> b -> b) -> b -> t a -> b
foldlWithKey' :: FoldableWithKey t => (b -> Key t -> a -> b) -> b -> t a -> b
foldrWithKeyM :: (FoldableWithKey t, Monad m) => (Key t -> a -> b -> m b) -> b -> t a -> m b
foldlWithKeyM :: (FoldableWithKey t, Monad m) => (b -> Key t -> a -> m b) -> b -> t a -> m b
traverseWithKey_ :: (FoldableWithKey t, Applicative f) => (Key t -> a -> f b) -> t a -> f ()
forWithKey_ :: (FoldableWithKey t, Applicative f) => t a -> (Key t -> a -> f b) -> f ()
mapWithKeyM_ :: (FoldableWithKey t, Monad m) => (Key t -> a -> m b) -> t a -> m ()
forWithKeyM_ :: (FoldableWithKey t, Monad m) => t a -> (Key t -> a -> m b) -> m ()
concatMapWithKey :: FoldableWithKey t => (Key t -> a -> [b]) -> t a -> [b]
anyWithKey :: FoldableWithKey t => (Key t -> a -> Bool) -> t a -> Bool
allWithKey :: FoldableWithKey t => (Key t -> a -> Bool) -> t a -> Bool
findWithKey :: FoldableWithKey t => (Key t -> a -> Bool) -> t a -> Maybe a
class (Foldable1 t, FoldableWithKey t) => FoldableWithKey1 t
foldMapWithKey1 :: (FoldableWithKey1 t, Semigroup m) => (Key t -> a -> m) -> t a -> m
traverseWithKey1_ :: (FoldableWithKey1 t, Apply f) => (Key t -> a -> f b) -> t a -> f ()
forWithKey1_ :: (FoldableWithKey1 t, Apply f) => t a -> (Key t -> a -> f b) -> f ()
foldMapWithKeyDefault1 :: (FoldableWithKey1 t, Monoid m) => (Key t -> a -> m) -> t a -> m
class (Keyed t, FoldableWithKey t, Traversable t) => TraversableWithKey t
traverseWithKey :: (TraversableWithKey t, Applicative f) => (Key t -> a -> f b) -> t a -> f (t b)
mapWithKeyM :: (TraversableWithKey t, Monad m) => (Key t -> a -> m b) -> t a -> m (t b)
forWithKey :: (TraversableWithKey t, Applicative f) => t a -> (Key t -> a -> f b) -> f (t b)
forWithKeyM :: (TraversableWithKey t, Monad m) => t a -> (Key t -> a -> m b) -> m (t b)
-- | The mapAccumWithKeyL function behaves like a combination of
-- mapWithKey and foldlWithKey; it applies a function to
-- each element of a structure, passing an accumulating parameter from
-- left to right, and returning a final value of this accumulator
-- together with the new structure.
mapAccumWithKeyL :: TraversableWithKey t => (Key t -> a -> b -> (a, c)) -> a -> t b -> (a, t c)
-- | The mapAccumWithKeyR function behaves like a combination of
-- mapWithKey and foldrWithKey; it applies a function to
-- each element of a structure, passing an accumulating parameter from
-- right to left, and returning a final value of this accumulator
-- together with the new structure.
mapAccumWithKeyR :: TraversableWithKey t => (Key t -> a -> b -> (a, c)) -> a -> t b -> (a, t c)
mapWithKeyDefault :: TraversableWithKey t => (Key t -> a -> b) -> t a -> t b
-- | This function may be used as a value for
-- Data.Foldable.foldMapWithKey in a FoldableWithKey
-- instance.
foldMapWithKeyDefault :: (TraversableWithKey t, Monoid m) => (Key t -> a -> m) -> t a -> m
class (Traversable1 t, FoldableWithKey1 t, TraversableWithKey t) => TraversableWithKey1 t
traverseWithKey1 :: (TraversableWithKey1 t, Apply f) => (Key t -> a -> f b) -> t a -> f (t b)
foldMapWithKey1Default :: (TraversableWithKey1 t, Semigroup m) => (Key t -> a -> m) -> t a -> m
instance (Adjustable f, Adjustable g) => Adjustable (Product f g)
instance (TraversableWithKey1 f, TraversableWithKey1 g) => TraversableWithKey1 (Product f g)
instance (TraversableWithKey f, TraversableWithKey g) => TraversableWithKey (Product f g)
instance (FoldableWithKey1 f, FoldableWithKey1 g) => FoldableWithKey1 (Product f g)
instance (FoldableWithKey f, FoldableWithKey g) => FoldableWithKey (Product f g)
instance (ZipWithKey f, ZipWithKey g) => ZipWithKey (Product f g)
instance (Zip f, Zip g) => Zip (Product f g)
instance (Lookup f, Lookup g) => Lookup (Product f g)
instance (Indexable f, Indexable g) => Indexable (Product f g)
instance (Keyed f, Keyed g) => Keyed (Product f g)
instance (Adjustable f, Adjustable g) => Adjustable (Coproduct f g)
instance (Lookup f, Lookup g) => Lookup (Coproduct f g)
instance (Indexable f, Indexable g) => Indexable (Coproduct f g)
instance Ix i => Adjustable (Array i)
instance Ix i => TraversableWithKey (Array i)
instance Ix i => FoldableWithKey (Array i)
instance Ix i => Lookup (Array i)
instance Ix i => Indexable (Array i)
instance Ix i => Keyed (Array i)
instance Ord k => Adjustable (Map k)
instance TraversableWithKey (Map k)
instance FoldableWithKey (Map k)
instance Ord k => Lookup (Map k)
instance Ord k => Indexable (Map k)
instance Keyed (Map k)
instance Ord k => ZipWithKey (Map k)
instance Ord k => Zip (Map k)
instance TraversableWithKey Seq
instance FoldableWithKey Seq
instance Keyed Seq
instance Adjustable Seq
instance ZipWithKey Seq
instance Zip Seq
instance Lookup Seq
instance Indexable Seq
instance Adjustable []
instance Lookup []
instance Indexable []
instance TraversableWithKey []
instance FoldableWithKey []
instance Keyed []
instance ZipWithKey []
instance Zip []
instance (TraversableWithKey1 f, TraversableWithKey1 m) => TraversableWithKey1 (Compose f m)
instance (TraversableWithKey f, TraversableWithKey m) => TraversableWithKey (Compose f m)
instance (FoldableWithKey1 f, FoldableWithKey1 m) => FoldableWithKey1 (Compose f m)
instance (FoldableWithKey f, FoldableWithKey m) => FoldableWithKey (Compose f m)
instance (Lookup f, Lookup g) => Lookup (Compose f g)
instance (Indexable f, Indexable g) => Indexable (Compose f g)
instance (Keyed f, Keyed g) => Keyed (Compose f g)
instance (ZipWithKey f, ZipWithKey g) => ZipWithKey (Compose f g)
instance (Zip f, Zip g) => Zip (Compose f g)
instance Adjustable IntMap
instance Lookup IntMap
instance Indexable IntMap
instance TraversableWithKey IntMap
instance FoldableWithKey IntMap
instance Keyed IntMap
instance ZipWithKey IntMap
instance Zip IntMap
instance Lookup w => Lookup (TracedT s w)
instance Indexable w => Indexable (TracedT s w)
instance Keyed w => Keyed (TracedT s w)
instance ZipWithKey w => ZipWithKey (TracedT s w)
instance Zip w => Zip (TracedT s w)
instance Lookup m => Lookup (ReaderT e m)
instance Indexable m => Indexable (ReaderT e m)
instance Keyed m => Keyed (ReaderT e m)
instance ZipWithKey m => ZipWithKey (ReaderT e m)
instance Zip m => Zip (ReaderT e m)
instance Lookup ((->) a)
instance Indexable ((->) a)
instance ZipWithKey ((->) a)
instance Zip ((->) a)
instance Keyed ((->) a)
instance TraversableWithKey1 m => TraversableWithKey1 (IdentityT m)
instance TraversableWithKey m => TraversableWithKey (IdentityT m)
instance FoldableWithKey1 m => FoldableWithKey1 (IdentityT m)
instance FoldableWithKey m => FoldableWithKey (IdentityT m)
instance Keyed m => Keyed (IdentityT m)
instance ZipWithKey m => ZipWithKey (IdentityT m)
instance Zip m => Zip (IdentityT m)
instance Lookup m => Lookup (IdentityT m)
instance Indexable m => Indexable (IdentityT m)
instance TraversableWithKey1 Identity
instance TraversableWithKey Identity
instance FoldableWithKey1 Identity
instance FoldableWithKey Identity
instance Keyed Identity
instance ZipWithKey Identity
instance Zip Identity
instance Adjustable Identity
instance Lookup Identity
instance Indexable Identity
instance TraversableWithKey1 f => TraversableWithKey1 (Free f)
instance TraversableWithKey1 f => TraversableWithKey1 (Cofree f)
instance Applicative (StateR s)
instance Functor (StateR s)
instance Applicative (StateL s)
instance Functor (StateL s)
instance TraversableWithKey f => TraversableWithKey (Free f)
instance TraversableWithKey f => TraversableWithKey (Cofree f)
instance Functor f => Functor (Act f)
instance Apply f => Semigroup (Act f a)
instance FoldableWithKey1 f => FoldableWithKey1 (Free f)
instance FoldableWithKey1 f => FoldableWithKey1 (Cofree f)
instance FoldableWithKey f => FoldableWithKey (Cofree f)
instance FoldableWithKey f => FoldableWithKey (Free f)
instance Adjustable f => Adjustable (Cofree f)
instance Adjustable f => Adjustable (Free f)
instance Lookup f => Lookup (Free f)
instance Lookup f => Lookup (Cofree f)
instance Indexable f => Indexable (Cofree f)
instance ZipWithKey f => ZipWithKey (Cofree f)
instance Zip f => Zip (Cofree f)
instance Keyed f => Keyed (Cofree f)
instance Keyed f => Keyed (Free f)