mono-traversable-1.0.4.0: Type classes for mapping, folding, and traversing monomorphic containers

Safe HaskellNone
LanguageHaskell2010

Data.MonoTraversable

Description

Type classes mirroring standard typeclasses, but working with monomorphic containers.

The motivation is that some commonly used data types (i.e., ByteString and Text) do not allow for instances of typeclasses like Functor and Foldable, since they are monomorphic structures. This module allows both monomorphic and polymorphic data types to be instances of the same typeclasses.

All of the laws for the polymorphic typeclasses apply to their monomorphic cousins. Thus, even though a MonoFunctor instance for Set could theoretically be defined, it is omitted since it could violate the functor law of omap f . omap g = omap (f . g).

Note that all typeclasses have been prefixed with Mono, and functions have been prefixed with o. The mnemonic for o is "only one", or alternatively "it's mono, but m is overused in Haskell, so we'll use the second letter instead." (Agreed, it's not a great mangling scheme, input is welcome!)

Synopsis

Documentation

type family Element mono Source #

Type family for getting the type of the elements of a monomorphic container.

Instances

type Element ByteString Source # 
type Element ByteString Source # 
type Element IntSet Source # 
type Element Text Source # 
type Element Text Source # 
type Element [a] Source # 
type Element [a] = a
type Element (Maybe a) Source # 
type Element (Maybe a) = a
type Element (IO a) Source # 
type Element (IO a) = a
type Element (Identity a) Source # 
type Element (Identity a) = a
type Element (Option a) Source # 
type Element (Option a) = a
type Element (NonEmpty a) Source # 
type Element (NonEmpty a) = a
type Element (ZipList a) Source # 
type Element (ZipList a) = a
type Element (IntMap a) Source # 
type Element (IntMap a) = a
type Element (Tree a) Source # 
type Element (Tree a) = a
type Element (Seq a) Source # 
type Element (Seq a) = a
type Element (ViewL a) Source # 
type Element (ViewL a) = a
type Element (ViewR a) Source # 
type Element (ViewR a) = a
type Element (Set e) Source # 
type Element (Set e) = e
type Element (HashSet e) Source # 
type Element (HashSet e) = e
type Element (Vector a) Source # 
type Element (Vector a) = a
type Element (Vector a) Source # 
type Element (Vector a) = a
type Element (Vector a) Source # 
type Element (Vector a) = a
type Element (NonNull mono) Source # 
type Element (NonNull mono) = Element mono
type Element (r -> a) Source # 
type Element (r -> a) = a
type Element (Either a b) Source # 
type Element (Either a b) = b
type Element (a, b) Source # 
type Element (a, b) = b
type Element (Arg a b) Source # 
type Element (Arg a b) = b
type Element (WrappedMonad m a) Source # 
type Element (WrappedMonad m a) = a
type Element (Map k v) Source # 
type Element (Map k v) = v
type Element (MaybeT m a) Source # 
type Element (MaybeT m a) = a
type Element (ListT m a) Source # 
type Element (ListT m a) = a
type Element (HashMap k v) Source # 
type Element (HashMap k v) = v
type Element (WrappedArrow a b c) Source # 
type Element (WrappedArrow a b c) = c
type Element (Const * m a) Source # 
type Element (Const * m a) = a
type Element (WriterT w m a) Source # 
type Element (WriterT w m a) = a
type Element (WriterT w m a) Source # 
type Element (WriterT w m a) = a
type Element (StateT s m a) Source # 
type Element (StateT s m a) = a
type Element (StateT s m a) Source # 
type Element (StateT s m a) = a
type Element (IdentityT * m a) Source # 
type Element (IdentityT * m a) = a
type Element (Product * f g a) Source # 
type Element (Product * f g a) = a
type Element (ReaderT * r m a) Source # 
type Element (ReaderT * r m a) = a
type Element (ContT * r m a) Source # 
type Element (ContT * r m a) = a
type Element (Compose * * f g a) Source # 
type Element (Compose * * f g a) = a
type Element (RWST r w s m a) Source # 
type Element (RWST r w s m a) = a
type Element (RWST r w s m a) Source # 
type Element (RWST r w s m a) = a

class MonoFunctor mono where Source #

Monomorphic containers that can be mapped over.

Methods

omap :: (Element mono -> Element mono) -> mono -> mono Source #

Map over a monomorphic container

omap :: (Functor f, Element (f a) ~ a, f a ~ mono) => (Element mono -> Element mono) -> mono -> mono Source #

Map over a monomorphic container

Instances

MonoFunctor ByteString Source # 
MonoFunctor ByteString Source # 
MonoFunctor Text Source # 

Methods

omap :: (Element Text -> Element Text) -> Text -> Text Source #

MonoFunctor Text Source # 

Methods

omap :: (Element Text -> Element Text) -> Text -> Text Source #

MonoFunctor [a] Source # 

Methods

omap :: (Element [a] -> Element [a]) -> [a] -> [a] Source #

MonoFunctor (Maybe a) Source # 

Methods

omap :: (Element (Maybe a) -> Element (Maybe a)) -> Maybe a -> Maybe a Source #

MonoFunctor (IO a) Source # 

Methods

omap :: (Element (IO a) -> Element (IO a)) -> IO a -> IO a Source #

MonoFunctor (Identity a) Source # 

Methods

omap :: (Element (Identity a) -> Element (Identity a)) -> Identity a -> Identity a Source #

MonoFunctor (Option a) Source # 

Methods

omap :: (Element (Option a) -> Element (Option a)) -> Option a -> Option a Source #

MonoFunctor (NonEmpty a) Source # 

Methods

omap :: (Element (NonEmpty a) -> Element (NonEmpty a)) -> NonEmpty a -> NonEmpty a Source #

MonoFunctor (ZipList a) Source # 

Methods

omap :: (Element (ZipList a) -> Element (ZipList a)) -> ZipList a -> ZipList a Source #

MonoFunctor (IntMap a) Source # 

Methods

omap :: (Element (IntMap a) -> Element (IntMap a)) -> IntMap a -> IntMap a Source #

MonoFunctor (Tree a) Source # 

Methods

omap :: (Element (Tree a) -> Element (Tree a)) -> Tree a -> Tree a Source #

MonoFunctor (Seq a) Source # 

Methods

omap :: (Element (Seq a) -> Element (Seq a)) -> Seq a -> Seq a Source #

MonoFunctor (ViewL a) Source # 

Methods

omap :: (Element (ViewL a) -> Element (ViewL a)) -> ViewL a -> ViewL a Source #

MonoFunctor (ViewR a) Source # 

Methods

omap :: (Element (ViewR a) -> Element (ViewR a)) -> ViewR a -> ViewR a Source #

MonoFunctor (Vector a) Source # 

Methods

omap :: (Element (Vector a) -> Element (Vector a)) -> Vector a -> Vector a Source #

Storable a => MonoFunctor (Vector a) Source # 

Methods

omap :: (Element (Vector a) -> Element (Vector a)) -> Vector a -> Vector a Source #

Unbox a => MonoFunctor (Vector a) Source # 

Methods

omap :: (Element (Vector a) -> Element (Vector a)) -> Vector a -> Vector a Source #

MonoFunctor mono => MonoFunctor (NonNull mono) Source # 

Methods

omap :: (Element (NonNull mono) -> Element (NonNull mono)) -> NonNull mono -> NonNull mono Source #

MonoFunctor (r -> a) Source # 

Methods

omap :: (Element (r -> a) -> Element (r -> a)) -> (r -> a) -> r -> a Source #

MonoFunctor (Either a b) Source # 

Methods

omap :: (Element (Either a b) -> Element (Either a b)) -> Either a b -> Either a b Source #

MonoFunctor (a, b) Source # 

Methods

omap :: (Element (a, b) -> Element (a, b)) -> (a, b) -> (a, b) Source #

MonoFunctor (Arg a b) Source # 

Methods

omap :: (Element (Arg a b) -> Element (Arg a b)) -> Arg a b -> Arg a b Source #

Monad m => MonoFunctor (WrappedMonad m a) Source # 

Methods

omap :: (Element (WrappedMonad m a) -> Element (WrappedMonad m a)) -> WrappedMonad m a -> WrappedMonad m a Source #

MonoFunctor (Map k v) Source # 

Methods

omap :: (Element (Map k v) -> Element (Map k v)) -> Map k v -> Map k v Source #

Functor m => MonoFunctor (MaybeT m a) Source # 

Methods

omap :: (Element (MaybeT m a) -> Element (MaybeT m a)) -> MaybeT m a -> MaybeT m a Source #

Functor m => MonoFunctor (ListT m a) Source # 

Methods

omap :: (Element (ListT m a) -> Element (ListT m a)) -> ListT m a -> ListT m a Source #

MonoFunctor (HashMap k v) Source # 

Methods

omap :: (Element (HashMap k v) -> Element (HashMap k v)) -> HashMap k v -> HashMap k v Source #

Arrow a => MonoFunctor (WrappedArrow a b c) Source # 

Methods

omap :: (Element (WrappedArrow a b c) -> Element (WrappedArrow a b c)) -> WrappedArrow a b c -> WrappedArrow a b c Source #

MonoFunctor (Const * m a) Source # 

Methods

omap :: (Element (Const * m a) -> Element (Const * m a)) -> Const * m a -> Const * m a Source #

Functor m => MonoFunctor (WriterT w m a) Source # 

Methods

omap :: (Element (WriterT w m a) -> Element (WriterT w m a)) -> WriterT w m a -> WriterT w m a Source #

Functor m => MonoFunctor (WriterT w m a) Source # 

Methods

omap :: (Element (WriterT w m a) -> Element (WriterT w m a)) -> WriterT w m a -> WriterT w m a Source #

Functor m => MonoFunctor (StateT s m a) Source # 

Methods

omap :: (Element (StateT s m a) -> Element (StateT s m a)) -> StateT s m a -> StateT s m a Source #

Functor m => MonoFunctor (StateT s m a) Source # 

Methods

omap :: (Element (StateT s m a) -> Element (StateT s m a)) -> StateT s m a -> StateT s m a Source #

Functor m => MonoFunctor (IdentityT * m a) Source # 

Methods

omap :: (Element (IdentityT * m a) -> Element (IdentityT * m a)) -> IdentityT * m a -> IdentityT * m a Source #

(Functor f, Functor g) => MonoFunctor (Product * f g a) Source # 

Methods

omap :: (Element (Product * f g a) -> Element (Product * f g a)) -> Product * f g a -> Product * f g a Source #

Functor m => MonoFunctor (ReaderT * r m a) Source # 

Methods

omap :: (Element (ReaderT * r m a) -> Element (ReaderT * r m a)) -> ReaderT * r m a -> ReaderT * r m a Source #

Functor m => MonoFunctor (ContT * r m a) Source # 

Methods

omap :: (Element (ContT * r m a) -> Element (ContT * r m a)) -> ContT * r m a -> ContT * r m a Source #

(Functor f, Functor g) => MonoFunctor (Compose * * f g a) Source # 

Methods

omap :: (Element (Compose * * f g a) -> Element (Compose * * f g a)) -> Compose * * f g a -> Compose * * f g a Source #

Functor m => MonoFunctor (RWST r w s m a) Source # 

Methods

omap :: (Element (RWST r w s m a) -> Element (RWST r w s m a)) -> RWST r w s m a -> RWST r w s m a Source #

Functor m => MonoFunctor (RWST r w s m a) Source # 

Methods

omap :: (Element (RWST r w s m a) -> Element (RWST r w s m a)) -> RWST r w s m a -> RWST r w s m a Source #

replaceElem :: (MonoFunctor mono, Eq (Element mono)) => Element mono -> Element mono -> mono -> mono Source #

replaceElem old new replaces all old elements with new.

Since: 1.0.1

class MonoFoldable mono where Source #

Monomorphic containers that can be folded.

Methods

ofoldMap :: Monoid m => (Element mono -> m) -> mono -> m Source #

Map each element of a monomorphic container to a Monoid and combine the results.

ofoldMap :: (t a ~ mono, a ~ Element (t a), Foldable t, Monoid m) => (Element mono -> m) -> mono -> m Source #

Map each element of a monomorphic container to a Monoid and combine the results.

ofoldr :: (Element mono -> b -> b) -> b -> mono -> b Source #

Right-associative fold of a monomorphic container.

ofoldr :: (t a ~ mono, a ~ Element (t a), Foldable t) => (Element mono -> b -> b) -> b -> mono -> b Source #

Right-associative fold of a monomorphic container.

ofoldl' :: (a -> Element mono -> a) -> a -> mono -> a Source #

Strict left-associative fold of a monomorphic container.

ofoldl' :: (t b ~ mono, b ~ Element (t b), Foldable t) => (a -> Element mono -> a) -> a -> mono -> a Source #

Strict left-associative fold of a monomorphic container.

otoList :: mono -> [Element mono] Source #

Convert a monomorphic container to a list.

oall :: (Element mono -> Bool) -> mono -> Bool Source #

Are all of the elements in a monomorphic container converted to booleans True?

oany :: (Element mono -> Bool) -> mono -> Bool Source #

Are any of the elements in a monomorphic container converted to booleans True?

onull :: mono -> Bool Source #

Is the monomorphic container empty?

olength :: mono -> Int Source #

Length of a monomorphic container, returns a Int.

olength64 :: mono -> Int64 Source #

Length of a monomorphic container, returns a Int64.

ocompareLength :: Integral i => mono -> i -> Ordering Source #

Compare the length of a monomorphic container and a given number.

otraverse_ :: Applicative f => (Element mono -> f b) -> mono -> f () Source #

Map each element of a monomorphic container to an action, evaluate these actions from left to right, and ignore the results.

ofor_ :: Applicative f => mono -> (Element mono -> f b) -> f () Source #

ofor_ is otraverse_ with its arguments flipped.

omapM_ :: Applicative m => (Element mono -> m ()) -> mono -> m () Source #

Map each element of a monomorphic container to a monadic action, evaluate these actions from left to right, and ignore the results.

oforM_ :: Applicative m => mono -> (Element mono -> m ()) -> m () Source #

oforM_ is omapM_ with its arguments flipped.

ofoldlM :: Monad m => (a -> Element mono -> m a) -> a -> mono -> m a Source #

Monadic fold over the elements of a monomorphic container, associating to the left.

ofoldMap1Ex :: Semigroup m => (Element mono -> m) -> mono -> m Source #

Map each element of a monomorphic container to a semigroup, and combine the results.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See ofoldMap1 from Data.NonNull for a total version of this function.

ofoldr1Ex :: (Element mono -> Element mono -> Element mono) -> mono -> Element mono Source #

Right-associative fold of a monomorphic container with no base element.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See ofoldr1Ex from Data.NonNull for a total version of this function.

ofoldr1Ex :: (t a ~ mono, a ~ Element (t a), Foldable t) => (Element mono -> Element mono -> Element mono) -> mono -> Element mono Source #

Right-associative fold of a monomorphic container with no base element.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See ofoldr1Ex from Data.NonNull for a total version of this function.

ofoldl1Ex' :: (Element mono -> Element mono -> Element mono) -> mono -> Element mono Source #

Strict left-associative fold of a monomorphic container with no base element.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See ofoldl1Ex' from Data.NonNull for a total version of this function.

ofoldl1Ex' :: (t a ~ mono, a ~ Element (t a), Foldable t) => (Element mono -> Element mono -> Element mono) -> mono -> Element mono Source #

Strict left-associative fold of a monomorphic container with no base element.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See ofoldl1Ex' from Data.NonNull for a total version of this function.

headEx :: mono -> Element mono Source #

Get the first element of a monomorphic container.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See head from Data.NonNull for a total version of this function.

lastEx :: mono -> Element mono Source #

Get the last element of a monomorphic container.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See 'Data.NonNull.last from Data.NonNull for a total version of this function.

unsafeHead :: mono -> Element mono Source #

Equivalent to headEx.

unsafeLast :: mono -> Element mono Source #

Equivalent to lastEx.

maximumByEx :: (Element mono -> Element mono -> Ordering) -> mono -> Element mono Source #

Get the maximum element of a monomorphic container, using a supplied element ordering function.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See maximiumBy from Data.NonNull for a total version of this function.

minimumByEx :: (Element mono -> Element mono -> Ordering) -> mono -> Element mono Source #

Get the minimum element of a monomorphic container, using a supplied element ordering function.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See minimumBy from Data.NonNull for a total version of this function.

Instances

MonoFoldable ByteString Source # 

Methods

ofoldMap :: Monoid m => (Element ByteString -> m) -> ByteString -> m Source #

ofoldr :: (Element ByteString -> b -> b) -> b -> ByteString -> b Source #

ofoldl' :: (a -> Element ByteString -> a) -> a -> ByteString -> a Source #

otoList :: ByteString -> [Element ByteString] Source #

oall :: (Element ByteString -> Bool) -> ByteString -> Bool Source #

oany :: (Element ByteString -> Bool) -> ByteString -> Bool Source #

onull :: ByteString -> Bool Source #

olength :: ByteString -> Int Source #

olength64 :: ByteString -> Int64 Source #

ocompareLength :: Integral i => ByteString -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element ByteString -> f b) -> ByteString -> f () Source #

ofor_ :: Applicative f => ByteString -> (Element ByteString -> f b) -> f () Source #

omapM_ :: Applicative m => (Element ByteString -> m ()) -> ByteString -> m () Source #

oforM_ :: Applicative m => ByteString -> (Element ByteString -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element ByteString -> m a) -> a -> ByteString -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element ByteString -> m) -> ByteString -> m Source #

ofoldr1Ex :: (Element ByteString -> Element ByteString -> Element ByteString) -> ByteString -> Element ByteString Source #

ofoldl1Ex' :: (Element ByteString -> Element ByteString -> Element ByteString) -> ByteString -> Element ByteString Source #

headEx :: ByteString -> Element ByteString Source #

lastEx :: ByteString -> Element ByteString Source #

unsafeHead :: ByteString -> Element ByteString Source #

unsafeLast :: ByteString -> Element ByteString Source #

maximumByEx :: (Element ByteString -> Element ByteString -> Ordering) -> ByteString -> Element ByteString Source #

minimumByEx :: (Element ByteString -> Element ByteString -> Ordering) -> ByteString -> Element ByteString Source #

MonoFoldable ByteString Source # 

Methods

ofoldMap :: Monoid m => (Element ByteString -> m) -> ByteString -> m Source #

ofoldr :: (Element ByteString -> b -> b) -> b -> ByteString -> b Source #

ofoldl' :: (a -> Element ByteString -> a) -> a -> ByteString -> a Source #

otoList :: ByteString -> [Element ByteString] Source #

oall :: (Element ByteString -> Bool) -> ByteString -> Bool Source #

oany :: (Element ByteString -> Bool) -> ByteString -> Bool Source #

onull :: ByteString -> Bool Source #

olength :: ByteString -> Int Source #

olength64 :: ByteString -> Int64 Source #

ocompareLength :: Integral i => ByteString -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element ByteString -> f b) -> ByteString -> f () Source #

ofor_ :: Applicative f => ByteString -> (Element ByteString -> f b) -> f () Source #

omapM_ :: Applicative m => (Element ByteString -> m ()) -> ByteString -> m () Source #

oforM_ :: Applicative m => ByteString -> (Element ByteString -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element ByteString -> m a) -> a -> ByteString -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element ByteString -> m) -> ByteString -> m Source #

ofoldr1Ex :: (Element ByteString -> Element ByteString -> Element ByteString) -> ByteString -> Element ByteString Source #

ofoldl1Ex' :: (Element ByteString -> Element ByteString -> Element ByteString) -> ByteString -> Element ByteString Source #

headEx :: ByteString -> Element ByteString Source #

lastEx :: ByteString -> Element ByteString Source #

unsafeHead :: ByteString -> Element ByteString Source #

unsafeLast :: ByteString -> Element ByteString Source #

maximumByEx :: (Element ByteString -> Element ByteString -> Ordering) -> ByteString -> Element ByteString Source #

minimumByEx :: (Element ByteString -> Element ByteString -> Ordering) -> ByteString -> Element ByteString Source #

MonoFoldable IntSet Source # 

Methods

ofoldMap :: Monoid m => (Element IntSet -> m) -> IntSet -> m Source #

ofoldr :: (Element IntSet -> b -> b) -> b -> IntSet -> b Source #

ofoldl' :: (a -> Element IntSet -> a) -> a -> IntSet -> a Source #

otoList :: IntSet -> [Element IntSet] Source #

oall :: (Element IntSet -> Bool) -> IntSet -> Bool Source #

oany :: (Element IntSet -> Bool) -> IntSet -> Bool Source #

onull :: IntSet -> Bool Source #

olength :: IntSet -> Int Source #

olength64 :: IntSet -> Int64 Source #

ocompareLength :: Integral i => IntSet -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element IntSet -> f b) -> IntSet -> f () Source #

ofor_ :: Applicative f => IntSet -> (Element IntSet -> f b) -> f () Source #

omapM_ :: Applicative m => (Element IntSet -> m ()) -> IntSet -> m () Source #

oforM_ :: Applicative m => IntSet -> (Element IntSet -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element IntSet -> m a) -> a -> IntSet -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element IntSet -> m) -> IntSet -> m Source #

ofoldr1Ex :: (Element IntSet -> Element IntSet -> Element IntSet) -> IntSet -> Element IntSet Source #

ofoldl1Ex' :: (Element IntSet -> Element IntSet -> Element IntSet) -> IntSet -> Element IntSet Source #

headEx :: IntSet -> Element IntSet Source #

lastEx :: IntSet -> Element IntSet Source #

unsafeHead :: IntSet -> Element IntSet Source #

unsafeLast :: IntSet -> Element IntSet Source #

maximumByEx :: (Element IntSet -> Element IntSet -> Ordering) -> IntSet -> Element IntSet Source #

minimumByEx :: (Element IntSet -> Element IntSet -> Ordering) -> IntSet -> Element IntSet Source #

MonoFoldable Text Source # 
MonoFoldable Text Source # 
MonoFoldable [a] Source # 

Methods

ofoldMap :: Monoid m => (Element [a] -> m) -> [a] -> m Source #

ofoldr :: (Element [a] -> b -> b) -> b -> [a] -> b Source #

ofoldl' :: (a -> Element [a] -> a) -> a -> [a] -> a Source #

otoList :: [a] -> [Element [a]] Source #

oall :: (Element [a] -> Bool) -> [a] -> Bool Source #

oany :: (Element [a] -> Bool) -> [a] -> Bool Source #

onull :: [a] -> Bool Source #

olength :: [a] -> Int Source #

olength64 :: [a] -> Int64 Source #

ocompareLength :: Integral i => [a] -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element [a] -> f b) -> [a] -> f () Source #

ofor_ :: Applicative f => [a] -> (Element [a] -> f b) -> f () Source #

omapM_ :: Applicative m => (Element [a] -> m ()) -> [a] -> m () Source #

oforM_ :: Applicative m => [a] -> (Element [a] -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element [a] -> m a) -> a -> [a] -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element [a] -> m) -> [a] -> m Source #

ofoldr1Ex :: (Element [a] -> Element [a] -> Element [a]) -> [a] -> Element [a] Source #

ofoldl1Ex' :: (Element [a] -> Element [a] -> Element [a]) -> [a] -> Element [a] Source #

headEx :: [a] -> Element [a] Source #

lastEx :: [a] -> Element [a] Source #

unsafeHead :: [a] -> Element [a] Source #

unsafeLast :: [a] -> Element [a] Source #

maximumByEx :: (Element [a] -> Element [a] -> Ordering) -> [a] -> Element [a] Source #

minimumByEx :: (Element [a] -> Element [a] -> Ordering) -> [a] -> Element [a] Source #

MonoFoldable (Maybe a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Maybe a) -> m) -> Maybe a -> m Source #

ofoldr :: (Element (Maybe a) -> b -> b) -> b -> Maybe a -> b Source #

ofoldl' :: (a -> Element (Maybe a) -> a) -> a -> Maybe a -> a Source #

otoList :: Maybe a -> [Element (Maybe a)] Source #

oall :: (Element (Maybe a) -> Bool) -> Maybe a -> Bool Source #

oany :: (Element (Maybe a) -> Bool) -> Maybe a -> Bool Source #

onull :: Maybe a -> Bool Source #

olength :: Maybe a -> Int Source #

olength64 :: Maybe a -> Int64 Source #

ocompareLength :: Integral i => Maybe a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Maybe a) -> f b) -> Maybe a -> f () Source #

ofor_ :: Applicative f => Maybe a -> (Element (Maybe a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Maybe a) -> m ()) -> Maybe a -> m () Source #

oforM_ :: Applicative m => Maybe a -> (Element (Maybe a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Maybe a) -> m a) -> a -> Maybe a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Maybe a) -> m) -> Maybe a -> m Source #

ofoldr1Ex :: (Element (Maybe a) -> Element (Maybe a) -> Element (Maybe a)) -> Maybe a -> Element (Maybe a) Source #

ofoldl1Ex' :: (Element (Maybe a) -> Element (Maybe a) -> Element (Maybe a)) -> Maybe a -> Element (Maybe a) Source #

headEx :: Maybe a -> Element (Maybe a) Source #

lastEx :: Maybe a -> Element (Maybe a) Source #

unsafeHead :: Maybe a -> Element (Maybe a) Source #

unsafeLast :: Maybe a -> Element (Maybe a) Source #

maximumByEx :: (Element (Maybe a) -> Element (Maybe a) -> Ordering) -> Maybe a -> Element (Maybe a) Source #

minimumByEx :: (Element (Maybe a) -> Element (Maybe a) -> Ordering) -> Maybe a -> Element (Maybe a) Source #

MonoFoldable (Identity a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Identity a) -> m) -> Identity a -> m Source #

ofoldr :: (Element (Identity a) -> b -> b) -> b -> Identity a -> b Source #

ofoldl' :: (a -> Element (Identity a) -> a) -> a -> Identity a -> a Source #

otoList :: Identity a -> [Element (Identity a)] Source #

oall :: (Element (Identity a) -> Bool) -> Identity a -> Bool Source #

oany :: (Element (Identity a) -> Bool) -> Identity a -> Bool Source #

onull :: Identity a -> Bool Source #

olength :: Identity a -> Int Source #

olength64 :: Identity a -> Int64 Source #

ocompareLength :: Integral i => Identity a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Identity a) -> f b) -> Identity a -> f () Source #

ofor_ :: Applicative f => Identity a -> (Element (Identity a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Identity a) -> m ()) -> Identity a -> m () Source #

oforM_ :: Applicative m => Identity a -> (Element (Identity a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Identity a) -> m a) -> a -> Identity a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Identity a) -> m) -> Identity a -> m Source #

ofoldr1Ex :: (Element (Identity a) -> Element (Identity a) -> Element (Identity a)) -> Identity a -> Element (Identity a) Source #

ofoldl1Ex' :: (Element (Identity a) -> Element (Identity a) -> Element (Identity a)) -> Identity a -> Element (Identity a) Source #

headEx :: Identity a -> Element (Identity a) Source #

lastEx :: Identity a -> Element (Identity a) Source #

unsafeHead :: Identity a -> Element (Identity a) Source #

unsafeLast :: Identity a -> Element (Identity a) Source #

maximumByEx :: (Element (Identity a) -> Element (Identity a) -> Ordering) -> Identity a -> Element (Identity a) Source #

minimumByEx :: (Element (Identity a) -> Element (Identity a) -> Ordering) -> Identity a -> Element (Identity a) Source #

MonoFoldable (Option a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Option a) -> m) -> Option a -> m Source #

ofoldr :: (Element (Option a) -> b -> b) -> b -> Option a -> b Source #

ofoldl' :: (a -> Element (Option a) -> a) -> a -> Option a -> a Source #

otoList :: Option a -> [Element (Option a)] Source #

oall :: (Element (Option a) -> Bool) -> Option a -> Bool Source #

oany :: (Element (Option a) -> Bool) -> Option a -> Bool Source #

onull :: Option a -> Bool Source #

olength :: Option a -> Int Source #

olength64 :: Option a -> Int64 Source #

ocompareLength :: Integral i => Option a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Option a) -> f b) -> Option a -> f () Source #

ofor_ :: Applicative f => Option a -> (Element (Option a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Option a) -> m ()) -> Option a -> m () Source #

oforM_ :: Applicative m => Option a -> (Element (Option a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Option a) -> m a) -> a -> Option a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Option a) -> m) -> Option a -> m Source #

ofoldr1Ex :: (Element (Option a) -> Element (Option a) -> Element (Option a)) -> Option a -> Element (Option a) Source #

ofoldl1Ex' :: (Element (Option a) -> Element (Option a) -> Element (Option a)) -> Option a -> Element (Option a) Source #

headEx :: Option a -> Element (Option a) Source #

lastEx :: Option a -> Element (Option a) Source #

unsafeHead :: Option a -> Element (Option a) Source #

unsafeLast :: Option a -> Element (Option a) Source #

maximumByEx :: (Element (Option a) -> Element (Option a) -> Ordering) -> Option a -> Element (Option a) Source #

minimumByEx :: (Element (Option a) -> Element (Option a) -> Ordering) -> Option a -> Element (Option a) Source #

MonoFoldable (NonEmpty a) Source # 

Methods

ofoldMap :: Monoid m => (Element (NonEmpty a) -> m) -> NonEmpty a -> m Source #

ofoldr :: (Element (NonEmpty a) -> b -> b) -> b -> NonEmpty a -> b Source #

ofoldl' :: (a -> Element (NonEmpty a) -> a) -> a -> NonEmpty a -> a Source #

otoList :: NonEmpty a -> [Element (NonEmpty a)] Source #

oall :: (Element (NonEmpty a) -> Bool) -> NonEmpty a -> Bool Source #

oany :: (Element (NonEmpty a) -> Bool) -> NonEmpty a -> Bool Source #

onull :: NonEmpty a -> Bool Source #

olength :: NonEmpty a -> Int Source #

olength64 :: NonEmpty a -> Int64 Source #

ocompareLength :: Integral i => NonEmpty a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (NonEmpty a) -> f b) -> NonEmpty a -> f () Source #

ofor_ :: Applicative f => NonEmpty a -> (Element (NonEmpty a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (NonEmpty a) -> m ()) -> NonEmpty a -> m () Source #

oforM_ :: Applicative m => NonEmpty a -> (Element (NonEmpty a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (NonEmpty a) -> m a) -> a -> NonEmpty a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (NonEmpty a) -> m) -> NonEmpty a -> m Source #

ofoldr1Ex :: (Element (NonEmpty a) -> Element (NonEmpty a) -> Element (NonEmpty a)) -> NonEmpty a -> Element (NonEmpty a) Source #

ofoldl1Ex' :: (Element (NonEmpty a) -> Element (NonEmpty a) -> Element (NonEmpty a)) -> NonEmpty a -> Element (NonEmpty a) Source #

headEx :: NonEmpty a -> Element (NonEmpty a) Source #

lastEx :: NonEmpty a -> Element (NonEmpty a) Source #

unsafeHead :: NonEmpty a -> Element (NonEmpty a) Source #

unsafeLast :: NonEmpty a -> Element (NonEmpty a) Source #

maximumByEx :: (Element (NonEmpty a) -> Element (NonEmpty a) -> Ordering) -> NonEmpty a -> Element (NonEmpty a) Source #

minimumByEx :: (Element (NonEmpty a) -> Element (NonEmpty a) -> Ordering) -> NonEmpty a -> Element (NonEmpty a) Source #

MonoFoldable (IntMap a) Source # 

Methods

ofoldMap :: Monoid m => (Element (IntMap a) -> m) -> IntMap a -> m Source #

ofoldr :: (Element (IntMap a) -> b -> b) -> b -> IntMap a -> b Source #

ofoldl' :: (a -> Element (IntMap a) -> a) -> a -> IntMap a -> a Source #

otoList :: IntMap a -> [Element (IntMap a)] Source #

oall :: (Element (IntMap a) -> Bool) -> IntMap a -> Bool Source #

oany :: (Element (IntMap a) -> Bool) -> IntMap a -> Bool Source #

onull :: IntMap a -> Bool Source #

olength :: IntMap a -> Int Source #

olength64 :: IntMap a -> Int64 Source #

ocompareLength :: Integral i => IntMap a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (IntMap a) -> f b) -> IntMap a -> f () Source #

ofor_ :: Applicative f => IntMap a -> (Element (IntMap a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (IntMap a) -> m ()) -> IntMap a -> m () Source #

oforM_ :: Applicative m => IntMap a -> (Element (IntMap a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (IntMap a) -> m a) -> a -> IntMap a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (IntMap a) -> m) -> IntMap a -> m Source #

ofoldr1Ex :: (Element (IntMap a) -> Element (IntMap a) -> Element (IntMap a)) -> IntMap a -> Element (IntMap a) Source #

ofoldl1Ex' :: (Element (IntMap a) -> Element (IntMap a) -> Element (IntMap a)) -> IntMap a -> Element (IntMap a) Source #

headEx :: IntMap a -> Element (IntMap a) Source #

lastEx :: IntMap a -> Element (IntMap a) Source #

unsafeHead :: IntMap a -> Element (IntMap a) Source #

unsafeLast :: IntMap a -> Element (IntMap a) Source #

maximumByEx :: (Element (IntMap a) -> Element (IntMap a) -> Ordering) -> IntMap a -> Element (IntMap a) Source #

minimumByEx :: (Element (IntMap a) -> Element (IntMap a) -> Ordering) -> IntMap a -> Element (IntMap a) Source #

MonoFoldable (Tree a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Tree a) -> m) -> Tree a -> m Source #

ofoldr :: (Element (Tree a) -> b -> b) -> b -> Tree a -> b Source #

ofoldl' :: (a -> Element (Tree a) -> a) -> a -> Tree a -> a Source #

otoList :: Tree a -> [Element (Tree a)] Source #

oall :: (Element (Tree a) -> Bool) -> Tree a -> Bool Source #

oany :: (Element (Tree a) -> Bool) -> Tree a -> Bool Source #

onull :: Tree a -> Bool Source #

olength :: Tree a -> Int Source #

olength64 :: Tree a -> Int64 Source #

ocompareLength :: Integral i => Tree a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Tree a) -> f b) -> Tree a -> f () Source #

ofor_ :: Applicative f => Tree a -> (Element (Tree a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Tree a) -> m ()) -> Tree a -> m () Source #

oforM_ :: Applicative m => Tree a -> (Element (Tree a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Tree a) -> m a) -> a -> Tree a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Tree a) -> m) -> Tree a -> m Source #

ofoldr1Ex :: (Element (Tree a) -> Element (Tree a) -> Element (Tree a)) -> Tree a -> Element (Tree a) Source #

ofoldl1Ex' :: (Element (Tree a) -> Element (Tree a) -> Element (Tree a)) -> Tree a -> Element (Tree a) Source #

headEx :: Tree a -> Element (Tree a) Source #

lastEx :: Tree a -> Element (Tree a) Source #

unsafeHead :: Tree a -> Element (Tree a) Source #

unsafeLast :: Tree a -> Element (Tree a) Source #

maximumByEx :: (Element (Tree a) -> Element (Tree a) -> Ordering) -> Tree a -> Element (Tree a) Source #

minimumByEx :: (Element (Tree a) -> Element (Tree a) -> Ordering) -> Tree a -> Element (Tree a) Source #

MonoFoldable (Seq a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Seq a) -> m) -> Seq a -> m Source #

ofoldr :: (Element (Seq a) -> b -> b) -> b -> Seq a -> b Source #

ofoldl' :: (a -> Element (Seq a) -> a) -> a -> Seq a -> a Source #

otoList :: Seq a -> [Element (Seq a)] Source #

oall :: (Element (Seq a) -> Bool) -> Seq a -> Bool Source #

oany :: (Element (Seq a) -> Bool) -> Seq a -> Bool Source #

onull :: Seq a -> Bool Source #

olength :: Seq a -> Int Source #

olength64 :: Seq a -> Int64 Source #

ocompareLength :: Integral i => Seq a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Seq a) -> f b) -> Seq a -> f () Source #

ofor_ :: Applicative f => Seq a -> (Element (Seq a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Seq a) -> m ()) -> Seq a -> m () Source #

oforM_ :: Applicative m => Seq a -> (Element (Seq a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Seq a) -> m a) -> a -> Seq a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Seq a) -> m) -> Seq a -> m Source #

ofoldr1Ex :: (Element (Seq a) -> Element (Seq a) -> Element (Seq a)) -> Seq a -> Element (Seq a) Source #

ofoldl1Ex' :: (Element (Seq a) -> Element (Seq a) -> Element (Seq a)) -> Seq a -> Element (Seq a) Source #

headEx :: Seq a -> Element (Seq a) Source #

lastEx :: Seq a -> Element (Seq a) Source #

unsafeHead :: Seq a -> Element (Seq a) Source #

unsafeLast :: Seq a -> Element (Seq a) Source #

maximumByEx :: (Element (Seq a) -> Element (Seq a) -> Ordering) -> Seq a -> Element (Seq a) Source #

minimumByEx :: (Element (Seq a) -> Element (Seq a) -> Ordering) -> Seq a -> Element (Seq a) Source #

MonoFoldable (ViewL a) Source # 

Methods

ofoldMap :: Monoid m => (Element (ViewL a) -> m) -> ViewL a -> m Source #

ofoldr :: (Element (ViewL a) -> b -> b) -> b -> ViewL a -> b Source #

ofoldl' :: (a -> Element (ViewL a) -> a) -> a -> ViewL a -> a Source #

otoList :: ViewL a -> [Element (ViewL a)] Source #

oall :: (Element (ViewL a) -> Bool) -> ViewL a -> Bool Source #

oany :: (Element (ViewL a) -> Bool) -> ViewL a -> Bool Source #

onull :: ViewL a -> Bool Source #

olength :: ViewL a -> Int Source #

olength64 :: ViewL a -> Int64 Source #

ocompareLength :: Integral i => ViewL a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (ViewL a) -> f b) -> ViewL a -> f () Source #

ofor_ :: Applicative f => ViewL a -> (Element (ViewL a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (ViewL a) -> m ()) -> ViewL a -> m () Source #

oforM_ :: Applicative m => ViewL a -> (Element (ViewL a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (ViewL a) -> m a) -> a -> ViewL a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (ViewL a) -> m) -> ViewL a -> m Source #

ofoldr1Ex :: (Element (ViewL a) -> Element (ViewL a) -> Element (ViewL a)) -> ViewL a -> Element (ViewL a) Source #

ofoldl1Ex' :: (Element (ViewL a) -> Element (ViewL a) -> Element (ViewL a)) -> ViewL a -> Element (ViewL a) Source #

headEx :: ViewL a -> Element (ViewL a) Source #

lastEx :: ViewL a -> Element (ViewL a) Source #

unsafeHead :: ViewL a -> Element (ViewL a) Source #

unsafeLast :: ViewL a -> Element (ViewL a) Source #

maximumByEx :: (Element (ViewL a) -> Element (ViewL a) -> Ordering) -> ViewL a -> Element (ViewL a) Source #

minimumByEx :: (Element (ViewL a) -> Element (ViewL a) -> Ordering) -> ViewL a -> Element (ViewL a) Source #

MonoFoldable (ViewR a) Source # 

Methods

ofoldMap :: Monoid m => (Element (ViewR a) -> m) -> ViewR a -> m Source #

ofoldr :: (Element (ViewR a) -> b -> b) -> b -> ViewR a -> b Source #

ofoldl' :: (a -> Element (ViewR a) -> a) -> a -> ViewR a -> a Source #

otoList :: ViewR a -> [Element (ViewR a)] Source #

oall :: (Element (ViewR a) -> Bool) -> ViewR a -> Bool Source #

oany :: (Element (ViewR a) -> Bool) -> ViewR a -> Bool Source #

onull :: ViewR a -> Bool Source #

olength :: ViewR a -> Int Source #

olength64 :: ViewR a -> Int64 Source #

ocompareLength :: Integral i => ViewR a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (ViewR a) -> f b) -> ViewR a -> f () Source #

ofor_ :: Applicative f => ViewR a -> (Element (ViewR a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (ViewR a) -> m ()) -> ViewR a -> m () Source #

oforM_ :: Applicative m => ViewR a -> (Element (ViewR a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (ViewR a) -> m a) -> a -> ViewR a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (ViewR a) -> m) -> ViewR a -> m Source #

ofoldr1Ex :: (Element (ViewR a) -> Element (ViewR a) -> Element (ViewR a)) -> ViewR a -> Element (ViewR a) Source #

ofoldl1Ex' :: (Element (ViewR a) -> Element (ViewR a) -> Element (ViewR a)) -> ViewR a -> Element (ViewR a) Source #

headEx :: ViewR a -> Element (ViewR a) Source #

lastEx :: ViewR a -> Element (ViewR a) Source #

unsafeHead :: ViewR a -> Element (ViewR a) Source #

unsafeLast :: ViewR a -> Element (ViewR a) Source #

maximumByEx :: (Element (ViewR a) -> Element (ViewR a) -> Ordering) -> ViewR a -> Element (ViewR a) Source #

minimumByEx :: (Element (ViewR a) -> Element (ViewR a) -> Ordering) -> ViewR a -> Element (ViewR a) Source #

MonoFoldable (Set e) Source # 

Methods

ofoldMap :: Monoid m => (Element (Set e) -> m) -> Set e -> m Source #

ofoldr :: (Element (Set e) -> b -> b) -> b -> Set e -> b Source #

ofoldl' :: (a -> Element (Set e) -> a) -> a -> Set e -> a Source #

otoList :: Set e -> [Element (Set e)] Source #

oall :: (Element (Set e) -> Bool) -> Set e -> Bool Source #

oany :: (Element (Set e) -> Bool) -> Set e -> Bool Source #

onull :: Set e -> Bool Source #

olength :: Set e -> Int Source #

olength64 :: Set e -> Int64 Source #

ocompareLength :: Integral i => Set e -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Set e) -> f b) -> Set e -> f () Source #

ofor_ :: Applicative f => Set e -> (Element (Set e) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Set e) -> m ()) -> Set e -> m () Source #

oforM_ :: Applicative m => Set e -> (Element (Set e) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Set e) -> m a) -> a -> Set e -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Set e) -> m) -> Set e -> m Source #

ofoldr1Ex :: (Element (Set e) -> Element (Set e) -> Element (Set e)) -> Set e -> Element (Set e) Source #

ofoldl1Ex' :: (Element (Set e) -> Element (Set e) -> Element (Set e)) -> Set e -> Element (Set e) Source #

headEx :: Set e -> Element (Set e) Source #

lastEx :: Set e -> Element (Set e) Source #

unsafeHead :: Set e -> Element (Set e) Source #

unsafeLast :: Set e -> Element (Set e) Source #

maximumByEx :: (Element (Set e) -> Element (Set e) -> Ordering) -> Set e -> Element (Set e) Source #

minimumByEx :: (Element (Set e) -> Element (Set e) -> Ordering) -> Set e -> Element (Set e) Source #

MonoFoldable (HashSet e) Source # 

Methods

ofoldMap :: Monoid m => (Element (HashSet e) -> m) -> HashSet e -> m Source #

ofoldr :: (Element (HashSet e) -> b -> b) -> b -> HashSet e -> b Source #

ofoldl' :: (a -> Element (HashSet e) -> a) -> a -> HashSet e -> a Source #

otoList :: HashSet e -> [Element (HashSet e)] Source #

oall :: (Element (HashSet e) -> Bool) -> HashSet e -> Bool Source #

oany :: (Element (HashSet e) -> Bool) -> HashSet e -> Bool Source #

onull :: HashSet e -> Bool Source #

olength :: HashSet e -> Int Source #

olength64 :: HashSet e -> Int64 Source #

ocompareLength :: Integral i => HashSet e -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (HashSet e) -> f b) -> HashSet e -> f () Source #

ofor_ :: Applicative f => HashSet e -> (Element (HashSet e) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (HashSet e) -> m ()) -> HashSet e -> m () Source #

oforM_ :: Applicative m => HashSet e -> (Element (HashSet e) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (HashSet e) -> m a) -> a -> HashSet e -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (HashSet e) -> m) -> HashSet e -> m Source #

ofoldr1Ex :: (Element (HashSet e) -> Element (HashSet e) -> Element (HashSet e)) -> HashSet e -> Element (HashSet e) Source #

ofoldl1Ex' :: (Element (HashSet e) -> Element (HashSet e) -> Element (HashSet e)) -> HashSet e -> Element (HashSet e) Source #

headEx :: HashSet e -> Element (HashSet e) Source #

lastEx :: HashSet e -> Element (HashSet e) Source #

unsafeHead :: HashSet e -> Element (HashSet e) Source #

unsafeLast :: HashSet e -> Element (HashSet e) Source #

maximumByEx :: (Element (HashSet e) -> Element (HashSet e) -> Ordering) -> HashSet e -> Element (HashSet e) Source #

minimumByEx :: (Element (HashSet e) -> Element (HashSet e) -> Ordering) -> HashSet e -> Element (HashSet e) Source #

MonoFoldable (Vector a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Vector a) -> m) -> Vector a -> m Source #

ofoldr :: (Element (Vector a) -> b -> b) -> b -> Vector a -> b Source #

ofoldl' :: (a -> Element (Vector a) -> a) -> a -> Vector a -> a Source #

otoList :: Vector a -> [Element (Vector a)] Source #

oall :: (Element (Vector a) -> Bool) -> Vector a -> Bool Source #

oany :: (Element (Vector a) -> Bool) -> Vector a -> Bool Source #

onull :: Vector a -> Bool Source #

olength :: Vector a -> Int Source #

olength64 :: Vector a -> Int64 Source #

ocompareLength :: Integral i => Vector a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Vector a) -> f b) -> Vector a -> f () Source #

ofor_ :: Applicative f => Vector a -> (Element (Vector a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Vector a) -> m ()) -> Vector a -> m () Source #

oforM_ :: Applicative m => Vector a -> (Element (Vector a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Vector a) -> m a) -> a -> Vector a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Vector a) -> m) -> Vector a -> m Source #

ofoldr1Ex :: (Element (Vector a) -> Element (Vector a) -> Element (Vector a)) -> Vector a -> Element (Vector a) Source #

ofoldl1Ex' :: (Element (Vector a) -> Element (Vector a) -> Element (Vector a)) -> Vector a -> Element (Vector a) Source #

headEx :: Vector a -> Element (Vector a) Source #

lastEx :: Vector a -> Element (Vector a) Source #

unsafeHead :: Vector a -> Element (Vector a) Source #

unsafeLast :: Vector a -> Element (Vector a) Source #

maximumByEx :: (Element (Vector a) -> Element (Vector a) -> Ordering) -> Vector a -> Element (Vector a) Source #

minimumByEx :: (Element (Vector a) -> Element (Vector a) -> Ordering) -> Vector a -> Element (Vector a) Source #

Storable a => MonoFoldable (Vector a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Vector a) -> m) -> Vector a -> m Source #

ofoldr :: (Element (Vector a) -> b -> b) -> b -> Vector a -> b Source #

ofoldl' :: (a -> Element (Vector a) -> a) -> a -> Vector a -> a Source #

otoList :: Vector a -> [Element (Vector a)] Source #

oall :: (Element (Vector a) -> Bool) -> Vector a -> Bool Source #

oany :: (Element (Vector a) -> Bool) -> Vector a -> Bool Source #

onull :: Vector a -> Bool Source #

olength :: Vector a -> Int Source #

olength64 :: Vector a -> Int64 Source #

ocompareLength :: Integral i => Vector a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Vector a) -> f b) -> Vector a -> f () Source #

ofor_ :: Applicative f => Vector a -> (Element (Vector a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Vector a) -> m ()) -> Vector a -> m () Source #

oforM_ :: Applicative m => Vector a -> (Element (Vector a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Vector a) -> m a) -> a -> Vector a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Vector a) -> m) -> Vector a -> m Source #

ofoldr1Ex :: (Element (Vector a) -> Element (Vector a) -> Element (Vector a)) -> Vector a -> Element (Vector a) Source #

ofoldl1Ex' :: (Element (Vector a) -> Element (Vector a) -> Element (Vector a)) -> Vector a -> Element (Vector a) Source #

headEx :: Vector a -> Element (Vector a) Source #

lastEx :: Vector a -> Element (Vector a) Source #

unsafeHead :: Vector a -> Element (Vector a) Source #

unsafeLast :: Vector a -> Element (Vector a) Source #

maximumByEx :: (Element (Vector a) -> Element (Vector a) -> Ordering) -> Vector a -> Element (Vector a) Source #

minimumByEx :: (Element (Vector a) -> Element (Vector a) -> Ordering) -> Vector a -> Element (Vector a) Source #

Unbox a => MonoFoldable (Vector a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Vector a) -> m) -> Vector a -> m Source #

ofoldr :: (Element (Vector a) -> b -> b) -> b -> Vector a -> b Source #

ofoldl' :: (a -> Element (Vector a) -> a) -> a -> Vector a -> a Source #

otoList :: Vector a -> [Element (Vector a)] Source #

oall :: (Element (Vector a) -> Bool) -> Vector a -> Bool Source #

oany :: (Element (Vector a) -> Bool) -> Vector a -> Bool Source #

onull :: Vector a -> Bool Source #

olength :: Vector a -> Int Source #

olength64 :: Vector a -> Int64 Source #

ocompareLength :: Integral i => Vector a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Vector a) -> f b) -> Vector a -> f () Source #

ofor_ :: Applicative f => Vector a -> (Element (Vector a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Vector a) -> m ()) -> Vector a -> m () Source #

oforM_ :: Applicative m => Vector a -> (Element (Vector a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Vector a) -> m a) -> a -> Vector a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Vector a) -> m) -> Vector a -> m Source #

ofoldr1Ex :: (Element (Vector a) -> Element (Vector a) -> Element (Vector a)) -> Vector a -> Element (Vector a) Source #

ofoldl1Ex' :: (Element (Vector a) -> Element (Vector a) -> Element (Vector a)) -> Vector a -> Element (Vector a) Source #

headEx :: Vector a -> Element (Vector a) Source #

lastEx :: Vector a -> Element (Vector a) Source #

unsafeHead :: Vector a -> Element (Vector a) Source #

unsafeLast :: Vector a -> Element (Vector a) Source #

maximumByEx :: (Element (Vector a) -> Element (Vector a) -> Ordering) -> Vector a -> Element (Vector a) Source #

minimumByEx :: (Element (Vector a) -> Element (Vector a) -> Ordering) -> Vector a -> Element (Vector a) Source #

MonoFoldable mono => MonoFoldable (NonNull mono) Source # 

Methods

ofoldMap :: Monoid m => (Element (NonNull mono) -> m) -> NonNull mono -> m Source #

ofoldr :: (Element (NonNull mono) -> b -> b) -> b -> NonNull mono -> b Source #

ofoldl' :: (a -> Element (NonNull mono) -> a) -> a -> NonNull mono -> a Source #

otoList :: NonNull mono -> [Element (NonNull mono)] Source #

oall :: (Element (NonNull mono) -> Bool) -> NonNull mono -> Bool Source #

oany :: (Element (NonNull mono) -> Bool) -> NonNull mono -> Bool Source #

onull :: NonNull mono -> Bool Source #

olength :: NonNull mono -> Int Source #

olength64 :: NonNull mono -> Int64 Source #

ocompareLength :: Integral i => NonNull mono -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (NonNull mono) -> f b) -> NonNull mono -> f () Source #

ofor_ :: Applicative f => NonNull mono -> (Element (NonNull mono) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (NonNull mono) -> m ()) -> NonNull mono -> m () Source #

oforM_ :: Applicative m => NonNull mono -> (Element (NonNull mono) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (NonNull mono) -> m a) -> a -> NonNull mono -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (NonNull mono) -> m) -> NonNull mono -> m Source #

ofoldr1Ex :: (Element (NonNull mono) -> Element (NonNull mono) -> Element (NonNull mono)) -> NonNull mono -> Element (NonNull mono) Source #

ofoldl1Ex' :: (Element (NonNull mono) -> Element (NonNull mono) -> Element (NonNull mono)) -> NonNull mono -> Element (NonNull mono) Source #

headEx :: NonNull mono -> Element (NonNull mono) Source #

lastEx :: NonNull mono -> Element (NonNull mono) Source #

unsafeHead :: NonNull mono -> Element (NonNull mono) Source #

unsafeLast :: NonNull mono -> Element (NonNull mono) Source #

maximumByEx :: (Element (NonNull mono) -> Element (NonNull mono) -> Ordering) -> NonNull mono -> Element (NonNull mono) Source #

minimumByEx :: (Element (NonNull mono) -> Element (NonNull mono) -> Ordering) -> NonNull mono -> Element (NonNull mono) Source #

MonoFoldable (Either a b) Source # 

Methods

ofoldMap :: Monoid m => (Element (Either a b) -> m) -> Either a b -> m Source #

ofoldr :: (Element (Either a b) -> b -> b) -> b -> Either a b -> b Source #

ofoldl' :: (a -> Element (Either a b) -> a) -> a -> Either a b -> a Source #

otoList :: Either a b -> [Element (Either a b)] Source #

oall :: (Element (Either a b) -> Bool) -> Either a b -> Bool Source #

oany :: (Element (Either a b) -> Bool) -> Either a b -> Bool Source #

onull :: Either a b -> Bool Source #

olength :: Either a b -> Int Source #

olength64 :: Either a b -> Int64 Source #

ocompareLength :: Integral i => Either a b -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Either a b) -> f b) -> Either a b -> f () Source #

ofor_ :: Applicative f => Either a b -> (Element (Either a b) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Either a b) -> m ()) -> Either a b -> m () Source #

oforM_ :: Applicative m => Either a b -> (Element (Either a b) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Either a b) -> m a) -> a -> Either a b -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Either a b) -> m) -> Either a b -> m Source #

ofoldr1Ex :: (Element (Either a b) -> Element (Either a b) -> Element (Either a b)) -> Either a b -> Element (Either a b) Source #

ofoldl1Ex' :: (Element (Either a b) -> Element (Either a b) -> Element (Either a b)) -> Either a b -> Element (Either a b) Source #

headEx :: Either a b -> Element (Either a b) Source #

lastEx :: Either a b -> Element (Either a b) Source #

unsafeHead :: Either a b -> Element (Either a b) Source #

unsafeLast :: Either a b -> Element (Either a b) Source #

maximumByEx :: (Element (Either a b) -> Element (Either a b) -> Ordering) -> Either a b -> Element (Either a b) Source #

minimumByEx :: (Element (Either a b) -> Element (Either a b) -> Ordering) -> Either a b -> Element (Either a b) Source #

MonoFoldable (a, b) Source # 

Methods

ofoldMap :: Monoid m => (Element (a, b) -> m) -> (a, b) -> m Source #

ofoldr :: (Element (a, b) -> b -> b) -> b -> (a, b) -> b Source #

ofoldl' :: (a -> Element (a, b) -> a) -> a -> (a, b) -> a Source #

otoList :: (a, b) -> [Element (a, b)] Source #

oall :: (Element (a, b) -> Bool) -> (a, b) -> Bool Source #

oany :: (Element (a, b) -> Bool) -> (a, b) -> Bool Source #

onull :: (a, b) -> Bool Source #

olength :: (a, b) -> Int Source #

olength64 :: (a, b) -> Int64 Source #

ocompareLength :: Integral i => (a, b) -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (a, b) -> f b) -> (a, b) -> f () Source #

ofor_ :: Applicative f => (a, b) -> (Element (a, b) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (a, b) -> m ()) -> (a, b) -> m () Source #

oforM_ :: Applicative m => (a, b) -> (Element (a, b) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (a, b) -> m a) -> a -> (a, b) -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (a, b) -> m) -> (a, b) -> m Source #

ofoldr1Ex :: (Element (a, b) -> Element (a, b) -> Element (a, b)) -> (a, b) -> Element (a, b) Source #

ofoldl1Ex' :: (Element (a, b) -> Element (a, b) -> Element (a, b)) -> (a, b) -> Element (a, b) Source #

headEx :: (a, b) -> Element (a, b) Source #

lastEx :: (a, b) -> Element (a, b) Source #

unsafeHead :: (a, b) -> Element (a, b) Source #

unsafeLast :: (a, b) -> Element (a, b) Source #

maximumByEx :: (Element (a, b) -> Element (a, b) -> Ordering) -> (a, b) -> Element (a, b) Source #

minimumByEx :: (Element (a, b) -> Element (a, b) -> Ordering) -> (a, b) -> Element (a, b) Source #

MonoFoldable (Map k v) Source # 

Methods

ofoldMap :: Monoid m => (Element (Map k v) -> m) -> Map k v -> m Source #

ofoldr :: (Element (Map k v) -> b -> b) -> b -> Map k v -> b Source #

ofoldl' :: (a -> Element (Map k v) -> a) -> a -> Map k v -> a Source #

otoList :: Map k v -> [Element (Map k v)] Source #

oall :: (Element (Map k v) -> Bool) -> Map k v -> Bool Source #

oany :: (Element (Map k v) -> Bool) -> Map k v -> Bool Source #

onull :: Map k v -> Bool Source #

olength :: Map k v -> Int Source #

olength64 :: Map k v -> Int64 Source #

ocompareLength :: Integral i => Map k v -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Map k v) -> f b) -> Map k v -> f () Source #

ofor_ :: Applicative f => Map k v -> (Element (Map k v) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Map k v) -> m ()) -> Map k v -> m () Source #

oforM_ :: Applicative m => Map k v -> (Element (Map k v) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Map k v) -> m a) -> a -> Map k v -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Map k v) -> m) -> Map k v -> m Source #

ofoldr1Ex :: (Element (Map k v) -> Element (Map k v) -> Element (Map k v)) -> Map k v -> Element (Map k v) Source #

ofoldl1Ex' :: (Element (Map k v) -> Element (Map k v) -> Element (Map k v)) -> Map k v -> Element (Map k v) Source #

headEx :: Map k v -> Element (Map k v) Source #

lastEx :: Map k v -> Element (Map k v) Source #

unsafeHead :: Map k v -> Element (Map k v) Source #

unsafeLast :: Map k v -> Element (Map k v) Source #

maximumByEx :: (Element (Map k v) -> Element (Map k v) -> Ordering) -> Map k v -> Element (Map k v) Source #

minimumByEx :: (Element (Map k v) -> Element (Map k v) -> Ordering) -> Map k v -> Element (Map k v) Source #

Foldable f => MonoFoldable (MaybeT f a) Source # 

Methods

ofoldMap :: Monoid m => (Element (MaybeT f a) -> m) -> MaybeT f a -> m Source #

ofoldr :: (Element (MaybeT f a) -> b -> b) -> b -> MaybeT f a -> b Source #

ofoldl' :: (a -> Element (MaybeT f a) -> a) -> a -> MaybeT f a -> a Source #

otoList :: MaybeT f a -> [Element (MaybeT f a)] Source #

oall :: (Element (MaybeT f a) -> Bool) -> MaybeT f a -> Bool Source #

oany :: (Element (MaybeT f a) -> Bool) -> MaybeT f a -> Bool Source #

onull :: MaybeT f a -> Bool Source #

olength :: MaybeT f a -> Int Source #

olength64 :: MaybeT f a -> Int64 Source #

ocompareLength :: Integral i => MaybeT f a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (MaybeT f a) -> f b) -> MaybeT f a -> f () Source #

ofor_ :: Applicative f => MaybeT f a -> (Element (MaybeT f a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (MaybeT f a) -> m ()) -> MaybeT f a -> m () Source #

oforM_ :: Applicative m => MaybeT f a -> (Element (MaybeT f a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (MaybeT f a) -> m a) -> a -> MaybeT f a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (MaybeT f a) -> m) -> MaybeT f a -> m Source #

ofoldr1Ex :: (Element (MaybeT f a) -> Element (MaybeT f a) -> Element (MaybeT f a)) -> MaybeT f a -> Element (MaybeT f a) Source #

ofoldl1Ex' :: (Element (MaybeT f a) -> Element (MaybeT f a) -> Element (MaybeT f a)) -> MaybeT f a -> Element (MaybeT f a) Source #

headEx :: MaybeT f a -> Element (MaybeT f a) Source #

lastEx :: MaybeT f a -> Element (MaybeT f a) Source #

unsafeHead :: MaybeT f a -> Element (MaybeT f a) Source #

unsafeLast :: MaybeT f a -> Element (MaybeT f a) Source #

maximumByEx :: (Element (MaybeT f a) -> Element (MaybeT f a) -> Ordering) -> MaybeT f a -> Element (MaybeT f a) Source #

minimumByEx :: (Element (MaybeT f a) -> Element (MaybeT f a) -> Ordering) -> MaybeT f a -> Element (MaybeT f a) Source #

Foldable f => MonoFoldable (ListT f a) Source # 

Methods

ofoldMap :: Monoid m => (Element (ListT f a) -> m) -> ListT f a -> m Source #

ofoldr :: (Element (ListT f a) -> b -> b) -> b -> ListT f a -> b Source #

ofoldl' :: (a -> Element (ListT f a) -> a) -> a -> ListT f a -> a Source #

otoList :: ListT f a -> [Element (ListT f a)] Source #

oall :: (Element (ListT f a) -> Bool) -> ListT f a -> Bool Source #

oany :: (Element (ListT f a) -> Bool) -> ListT f a -> Bool Source #

onull :: ListT f a -> Bool Source #

olength :: ListT f a -> Int Source #

olength64 :: ListT f a -> Int64 Source #

ocompareLength :: Integral i => ListT f a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (ListT f a) -> f b) -> ListT f a -> f () Source #

ofor_ :: Applicative f => ListT f a -> (Element (ListT f a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (ListT f a) -> m ()) -> ListT f a -> m () Source #

oforM_ :: Applicative m => ListT f a -> (Element (ListT f a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (ListT f a) -> m a) -> a -> ListT f a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (ListT f a) -> m) -> ListT f a -> m Source #

ofoldr1Ex :: (Element (ListT f a) -> Element (ListT f a) -> Element (ListT f a)) -> ListT f a -> Element (ListT f a) Source #

ofoldl1Ex' :: (Element (ListT f a) -> Element (ListT f a) -> Element (ListT f a)) -> ListT f a -> Element (ListT f a) Source #

headEx :: ListT f a -> Element (ListT f a) Source #

lastEx :: ListT f a -> Element (ListT f a) Source #

unsafeHead :: ListT f a -> Element (ListT f a) Source #

unsafeLast :: ListT f a -> Element (ListT f a) Source #

maximumByEx :: (Element (ListT f a) -> Element (ListT f a) -> Ordering) -> ListT f a -> Element (ListT f a) Source #

minimumByEx :: (Element (ListT f a) -> Element (ListT f a) -> Ordering) -> ListT f a -> Element (ListT f a) Source #

MonoFoldable (HashMap k v) Source # 

Methods

ofoldMap :: Monoid m => (Element (HashMap k v) -> m) -> HashMap k v -> m Source #

ofoldr :: (Element (HashMap k v) -> b -> b) -> b -> HashMap k v -> b Source #

ofoldl' :: (a -> Element (HashMap k v) -> a) -> a -> HashMap k v -> a Source #

otoList :: HashMap k v -> [Element (HashMap k v)] Source #

oall :: (Element (HashMap k v) -> Bool) -> HashMap k v -> Bool Source #

oany :: (Element (HashMap k v) -> Bool) -> HashMap k v -> Bool Source #

onull :: HashMap k v -> Bool Source #

olength :: HashMap k v -> Int Source #

olength64 :: HashMap k v -> Int64 Source #

ocompareLength :: Integral i => HashMap k v -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (HashMap k v) -> f b) -> HashMap k v -> f () Source #

ofor_ :: Applicative f => HashMap k v -> (Element (HashMap k v) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (HashMap k v) -> m ()) -> HashMap k v -> m () Source #

oforM_ :: Applicative m => HashMap k v -> (Element (HashMap k v) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (HashMap k v) -> m a) -> a -> HashMap k v -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (HashMap k v) -> m) -> HashMap k v -> m Source #

ofoldr1Ex :: (Element (HashMap k v) -> Element (HashMap k v) -> Element (HashMap k v)) -> HashMap k v -> Element (HashMap k v) Source #

ofoldl1Ex' :: (Element (HashMap k v) -> Element (HashMap k v) -> Element (HashMap k v)) -> HashMap k v -> Element (HashMap k v) Source #

headEx :: HashMap k v -> Element (HashMap k v) Source #

lastEx :: HashMap k v -> Element (HashMap k v) Source #

unsafeHead :: HashMap k v -> Element (HashMap k v) Source #

unsafeLast :: HashMap k v -> Element (HashMap k v) Source #

maximumByEx :: (Element (HashMap k v) -> Element (HashMap k v) -> Ordering) -> HashMap k v -> Element (HashMap k v) Source #

minimumByEx :: (Element (HashMap k v) -> Element (HashMap k v) -> Ordering) -> HashMap k v -> Element (HashMap k v) Source #

MonoFoldable (Const * m a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Const * m a) -> m) -> Const * m a -> m Source #

ofoldr :: (Element (Const * m a) -> b -> b) -> b -> Const * m a -> b Source #

ofoldl' :: (a -> Element (Const * m a) -> a) -> a -> Const * m a -> a Source #

otoList :: Const * m a -> [Element (Const * m a)] Source #

oall :: (Element (Const * m a) -> Bool) -> Const * m a -> Bool Source #

oany :: (Element (Const * m a) -> Bool) -> Const * m a -> Bool Source #

onull :: Const * m a -> Bool Source #

olength :: Const * m a -> Int Source #

olength64 :: Const * m a -> Int64 Source #

ocompareLength :: Integral i => Const * m a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Const * m a) -> f b) -> Const * m a -> f () Source #

ofor_ :: Applicative f => Const * m a -> (Element (Const * m a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Const * m a) -> m ()) -> Const * m a -> m () Source #

oforM_ :: Applicative m => Const * m a -> (Element (Const * m a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Const * m a) -> m a) -> a -> Const * m a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Const * m a) -> m) -> Const * m a -> m Source #

ofoldr1Ex :: (Element (Const * m a) -> Element (Const * m a) -> Element (Const * m a)) -> Const * m a -> Element (Const * m a) Source #

ofoldl1Ex' :: (Element (Const * m a) -> Element (Const * m a) -> Element (Const * m a)) -> Const * m a -> Element (Const * m a) Source #

headEx :: Const * m a -> Element (Const * m a) Source #

lastEx :: Const * m a -> Element (Const * m a) Source #

unsafeHead :: Const * m a -> Element (Const * m a) Source #

unsafeLast :: Const * m a -> Element (Const * m a) Source #

maximumByEx :: (Element (Const * m a) -> Element (Const * m a) -> Ordering) -> Const * m a -> Element (Const * m a) Source #

minimumByEx :: (Element (Const * m a) -> Element (Const * m a) -> Ordering) -> Const * m a -> Element (Const * m a) Source #

Foldable f => MonoFoldable (WriterT w f a) Source # 

Methods

ofoldMap :: Monoid m => (Element (WriterT w f a) -> m) -> WriterT w f a -> m Source #

ofoldr :: (Element (WriterT w f a) -> b -> b) -> b -> WriterT w f a -> b Source #

ofoldl' :: (a -> Element (WriterT w f a) -> a) -> a -> WriterT w f a -> a Source #

otoList :: WriterT w f a -> [Element (WriterT w f a)] Source #

oall :: (Element (WriterT w f a) -> Bool) -> WriterT w f a -> Bool Source #

oany :: (Element (WriterT w f a) -> Bool) -> WriterT w f a -> Bool Source #

onull :: WriterT w f a -> Bool Source #

olength :: WriterT w f a -> Int Source #

olength64 :: WriterT w f a -> Int64 Source #

ocompareLength :: Integral i => WriterT w f a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (WriterT w f a) -> f b) -> WriterT w f a -> f () Source #

ofor_ :: Applicative f => WriterT w f a -> (Element (WriterT w f a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (WriterT w f a) -> m ()) -> WriterT w f a -> m () Source #

oforM_ :: Applicative m => WriterT w f a -> (Element (WriterT w f a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (WriterT w f a) -> m a) -> a -> WriterT w f a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (WriterT w f a) -> m) -> WriterT w f a -> m Source #

ofoldr1Ex :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Element (WriterT w f a)) -> WriterT w f a -> Element (WriterT w f a) Source #

ofoldl1Ex' :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Element (WriterT w f a)) -> WriterT w f a -> Element (WriterT w f a) Source #

headEx :: WriterT w f a -> Element (WriterT w f a) Source #

lastEx :: WriterT w f a -> Element (WriterT w f a) Source #

unsafeHead :: WriterT w f a -> Element (WriterT w f a) Source #

unsafeLast :: WriterT w f a -> Element (WriterT w f a) Source #

maximumByEx :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Ordering) -> WriterT w f a -> Element (WriterT w f a) Source #

minimumByEx :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Ordering) -> WriterT w f a -> Element (WriterT w f a) Source #

Foldable f => MonoFoldable (WriterT w f a) Source # 

Methods

ofoldMap :: Monoid m => (Element (WriterT w f a) -> m) -> WriterT w f a -> m Source #

ofoldr :: (Element (WriterT w f a) -> b -> b) -> b -> WriterT w f a -> b Source #

ofoldl' :: (a -> Element (WriterT w f a) -> a) -> a -> WriterT w f a -> a Source #

otoList :: WriterT w f a -> [Element (WriterT w f a)] Source #

oall :: (Element (WriterT w f a) -> Bool) -> WriterT w f a -> Bool Source #

oany :: (Element (WriterT w f a) -> Bool) -> WriterT w f a -> Bool Source #

onull :: WriterT w f a -> Bool Source #

olength :: WriterT w f a -> Int Source #

olength64 :: WriterT w f a -> Int64 Source #

ocompareLength :: Integral i => WriterT w f a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (WriterT w f a) -> f b) -> WriterT w f a -> f () Source #

ofor_ :: Applicative f => WriterT w f a -> (Element (WriterT w f a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (WriterT w f a) -> m ()) -> WriterT w f a -> m () Source #

oforM_ :: Applicative m => WriterT w f a -> (Element (WriterT w f a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (WriterT w f a) -> m a) -> a -> WriterT w f a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (WriterT w f a) -> m) -> WriterT w f a -> m Source #

ofoldr1Ex :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Element (WriterT w f a)) -> WriterT w f a -> Element (WriterT w f a) Source #

ofoldl1Ex' :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Element (WriterT w f a)) -> WriterT w f a -> Element (WriterT w f a) Source #

headEx :: WriterT w f a -> Element (WriterT w f a) Source #

lastEx :: WriterT w f a -> Element (WriterT w f a) Source #

unsafeHead :: WriterT w f a -> Element (WriterT w f a) Source #

unsafeLast :: WriterT w f a -> Element (WriterT w f a) Source #

maximumByEx :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Ordering) -> WriterT w f a -> Element (WriterT w f a) Source #

minimumByEx :: (Element (WriterT w f a) -> Element (WriterT w f a) -> Ordering) -> WriterT w f a -> Element (WriterT w f a) Source #

Foldable f => MonoFoldable (IdentityT * f a) Source # 

Methods

ofoldMap :: Monoid m => (Element (IdentityT * f a) -> m) -> IdentityT * f a -> m Source #

ofoldr :: (Element (IdentityT * f a) -> b -> b) -> b -> IdentityT * f a -> b Source #

ofoldl' :: (a -> Element (IdentityT * f a) -> a) -> a -> IdentityT * f a -> a Source #

otoList :: IdentityT * f a -> [Element (IdentityT * f a)] Source #

oall :: (Element (IdentityT * f a) -> Bool) -> IdentityT * f a -> Bool Source #

oany :: (Element (IdentityT * f a) -> Bool) -> IdentityT * f a -> Bool Source #

onull :: IdentityT * f a -> Bool Source #

olength :: IdentityT * f a -> Int Source #

olength64 :: IdentityT * f a -> Int64 Source #

ocompareLength :: Integral i => IdentityT * f a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (IdentityT * f a) -> f b) -> IdentityT * f a -> f () Source #

ofor_ :: Applicative f => IdentityT * f a -> (Element (IdentityT * f a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (IdentityT * f a) -> m ()) -> IdentityT * f a -> m () Source #

oforM_ :: Applicative m => IdentityT * f a -> (Element (IdentityT * f a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (IdentityT * f a) -> m a) -> a -> IdentityT * f a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (IdentityT * f a) -> m) -> IdentityT * f a -> m Source #

ofoldr1Ex :: (Element (IdentityT * f a) -> Element (IdentityT * f a) -> Element (IdentityT * f a)) -> IdentityT * f a -> Element (IdentityT * f a) Source #

ofoldl1Ex' :: (Element (IdentityT * f a) -> Element (IdentityT * f a) -> Element (IdentityT * f a)) -> IdentityT * f a -> Element (IdentityT * f a) Source #

headEx :: IdentityT * f a -> Element (IdentityT * f a) Source #

lastEx :: IdentityT * f a -> Element (IdentityT * f a) Source #

unsafeHead :: IdentityT * f a -> Element (IdentityT * f a) Source #

unsafeLast :: IdentityT * f a -> Element (IdentityT * f a) Source #

maximumByEx :: (Element (IdentityT * f a) -> Element (IdentityT * f a) -> Ordering) -> IdentityT * f a -> Element (IdentityT * f a) Source #

minimumByEx :: (Element (IdentityT * f a) -> Element (IdentityT * f a) -> Ordering) -> IdentityT * f a -> Element (IdentityT * f a) Source #

(Foldable f, Foldable g) => MonoFoldable (Product * f g a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Product * f g a) -> m) -> Product * f g a -> m Source #

ofoldr :: (Element (Product * f g a) -> b -> b) -> b -> Product * f g a -> b Source #

ofoldl' :: (a -> Element (Product * f g a) -> a) -> a -> Product * f g a -> a Source #

otoList :: Product * f g a -> [Element (Product * f g a)] Source #

oall :: (Element (Product * f g a) -> Bool) -> Product * f g a -> Bool Source #

oany :: (Element (Product * f g a) -> Bool) -> Product * f g a -> Bool Source #

onull :: Product * f g a -> Bool Source #

olength :: Product * f g a -> Int Source #

olength64 :: Product * f g a -> Int64 Source #

ocompareLength :: Integral i => Product * f g a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Product * f g a) -> f b) -> Product * f g a -> f () Source #

ofor_ :: Applicative f => Product * f g a -> (Element (Product * f g a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Product * f g a) -> m ()) -> Product * f g a -> m () Source #

oforM_ :: Applicative m => Product * f g a -> (Element (Product * f g a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Product * f g a) -> m a) -> a -> Product * f g a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Product * f g a) -> m) -> Product * f g a -> m Source #

ofoldr1Ex :: (Element (Product * f g a) -> Element (Product * f g a) -> Element (Product * f g a)) -> Product * f g a -> Element (Product * f g a) Source #

ofoldl1Ex' :: (Element (Product * f g a) -> Element (Product * f g a) -> Element (Product * f g a)) -> Product * f g a -> Element (Product * f g a) Source #

headEx :: Product * f g a -> Element (Product * f g a) Source #

lastEx :: Product * f g a -> Element (Product * f g a) Source #

unsafeHead :: Product * f g a -> Element (Product * f g a) Source #

unsafeLast :: Product * f g a -> Element (Product * f g a) Source #

maximumByEx :: (Element (Product * f g a) -> Element (Product * f g a) -> Ordering) -> Product * f g a -> Element (Product * f g a) Source #

minimumByEx :: (Element (Product * f g a) -> Element (Product * f g a) -> Ordering) -> Product * f g a -> Element (Product * f g a) Source #

(Foldable f, Foldable g) => MonoFoldable (Compose * * f g a) Source # 

Methods

ofoldMap :: Monoid m => (Element (Compose * * f g a) -> m) -> Compose * * f g a -> m Source #

ofoldr :: (Element (Compose * * f g a) -> b -> b) -> b -> Compose * * f g a -> b Source #

ofoldl' :: (a -> Element (Compose * * f g a) -> a) -> a -> Compose * * f g a -> a Source #

otoList :: Compose * * f g a -> [Element (Compose * * f g a)] Source #

oall :: (Element (Compose * * f g a) -> Bool) -> Compose * * f g a -> Bool Source #

oany :: (Element (Compose * * f g a) -> Bool) -> Compose * * f g a -> Bool Source #

onull :: Compose * * f g a -> Bool Source #

olength :: Compose * * f g a -> Int Source #

olength64 :: Compose * * f g a -> Int64 Source #

ocompareLength :: Integral i => Compose * * f g a -> i -> Ordering Source #

otraverse_ :: Applicative f => (Element (Compose * * f g a) -> f b) -> Compose * * f g a -> f () Source #

ofor_ :: Applicative f => Compose * * f g a -> (Element (Compose * * f g a) -> f b) -> f () Source #

omapM_ :: Applicative m => (Element (Compose * * f g a) -> m ()) -> Compose * * f g a -> m () Source #

oforM_ :: Applicative m => Compose * * f g a -> (Element (Compose * * f g a) -> m ()) -> m () Source #

ofoldlM :: Monad m => (a -> Element (Compose * * f g a) -> m a) -> a -> Compose * * f g a -> m a Source #

ofoldMap1Ex :: Semigroup m => (Element (Compose * * f g a) -> m) -> Compose * * f g a -> m Source #

ofoldr1Ex :: (Element (Compose * * f g a) -> Element (Compose * * f g a) -> Element (Compose * * f g a)) -> Compose * * f g a -> Element (Compose * * f g a) Source #

ofoldl1Ex' :: (Element (Compose * * f g a) -> Element (Compose * * f g a) -> Element (Compose * * f g a)) -> Compose * * f g a -> Element (Compose * * f g a) Source #

headEx :: Compose * * f g a -> Element (Compose * * f g a) Source #

lastEx :: Compose * * f g a -> Element (Compose * * f g a) Source #

unsafeHead :: Compose * * f g a -> Element (Compose * * f g a) Source #

unsafeLast :: Compose * * f g a -> Element (Compose * * f g a) Source #

maximumByEx :: (Element (Compose * * f g a) -> Element (Compose * * f g a) -> Ordering) -> Compose * * f g a -> Element (Compose * * f g a) Source #

minimumByEx :: (Element (Compose * * f g a) -> Element (Compose * * f g a) -> Ordering) -> Compose * * f g a -> Element (Compose * * f g a) Source #

headMay :: MonoFoldable mono => mono -> Maybe (Element mono) Source #

Safe version of headEx.

Returns Nothing instead of throwing an exception when encountering an empty monomorphic container.

lastMay :: MonoFoldable mono => mono -> Maybe (Element mono) Source #

Safe version of lastEx.

Returns Nothing instead of throwing an exception when encountering an empty monomorphic container.

osum :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono Source #

osum computes the sum of the numbers of a monomorphic container.

oproduct :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono Source #

oproduct computes the product of the numbers of a monomorphic container.

oand :: (Element mono ~ Bool, MonoFoldable mono) => mono -> Bool Source #

Are all of the elements True?

Since 0.6.0

oor :: (Element mono ~ Bool, MonoFoldable mono) => mono -> Bool Source #

Are any of the elements True?

Since 0.6.0

oconcatMap :: (MonoFoldable mono, Monoid m) => (Element mono -> m) -> mono -> m Source #

Synonym for ofoldMap

Since: 1.0.0

ofold :: (MonoFoldable mono, Monoid (Element mono)) => mono -> Element mono Source #

Monoidally combine all values in the container

Since: 1.0.0

oconcat :: (MonoFoldable mono, Monoid (Element mono)) => mono -> Element mono Source #

Synonym for ofold

Since: 1.0.0

ofoldM :: (MonoFoldable mono, Monad m) => (a -> Element mono -> m a) -> a -> mono -> m a Source #

Synonym for ofoldlM

Since: 1.0.0

osequence_ :: (Applicative m, MonoFoldable mono, Element mono ~ m ()) => mono -> m () Source #

Perform all actions in the given container

Since: 1.0.0

oelem :: (MonoFoldable mono, Eq (Element mono)) => Element mono -> mono -> Bool Source #

Checks if the monomorphic container includes the supplied element.

onotElem :: (MonoFoldable mono, Eq (Element mono)) => Element mono -> mono -> Bool Source #

Checks if the monomorphic container does not include the supplied element.

maximumEx :: (MonoFoldable mono, Ord (Element mono)) => mono -> Element mono Source #

Get the minimum element of a monomorphic container.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See maximum from Data.NonNull for a total version of this function.

minimumEx :: (MonoFoldable mono, Ord (Element mono)) => mono -> Element mono Source #

Get the maximum element of a monomorphic container.

Note: this is a partial function. On an empty MonoFoldable, it will throw an exception.

See minimum from Data.NonNull for a total version of this function.

maximumMay :: (MonoFoldable mono, Ord (Element mono)) => mono -> Maybe (Element mono) Source #

Safe version of maximumEx.

Returns Nothing instead of throwing an exception when encountering an empty monomorphic container.

maximumByMay :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> mono -> Maybe (Element mono) Source #

Safe version of maximumByEx.

Returns Nothing instead of throwing an exception when encountering an empty monomorphic container.

minimumMay :: (MonoFoldable mono, Ord (Element mono)) => mono -> Maybe (Element mono) Source #

Safe version of minimumEx.

Returns Nothing instead of throwing an exception when encountering an empty monomorphic container.

minimumByMay :: MonoFoldable mono => (Element mono -> Element mono -> Ordering) -> mono -> Maybe (Element mono) Source #

Safe version of minimumByEx.

Returns Nothing instead of throwing an exception when encountering an empty monomorphic container.

class (MonoFunctor mono, MonoFoldable mono) => MonoTraversable mono where Source #

Monomorphic containers that can be traversed from left to right.

Methods

otraverse :: Applicative f => (Element mono -> f (Element mono)) -> mono -> f mono Source #

Map each element of a monomorphic container to an action, evaluate these actions from left to right, and collect the results.

otraverse :: (Traversable t, mono ~ t a, a ~ Element mono, Applicative f) => (Element mono -> f (Element mono)) -> mono -> f mono Source #

Map each element of a monomorphic container to an action, evaluate these actions from left to right, and collect the results.

omapM :: Applicative m => (Element mono -> m (Element mono)) -> mono -> m mono Source #

Map each element of a monomorphic container to a monadic action, evaluate these actions from left to right, and collect the results.

Instances

MonoTraversable ByteString Source # 
MonoTraversable ByteString Source # 
MonoTraversable Text Source # 

Methods

otraverse :: Applicative f => (Element Text -> f (Element Text)) -> Text -> f Text Source #

omapM :: Applicative m => (Element Text -> m (Element Text)) -> Text -> m Text Source #

MonoTraversable Text Source # 

Methods

otraverse :: Applicative f => (Element Text -> f (Element Text)) -> Text -> f Text Source #

omapM :: Applicative m => (Element Text -> m (Element Text)) -> Text -> m Text Source #

MonoTraversable [a] Source # 

Methods

otraverse :: Applicative f => (Element [a] -> f (Element [a])) -> [a] -> f [a] Source #

omapM :: Applicative m => (Element [a] -> m (Element [a])) -> [a] -> m [a] Source #

MonoTraversable (Maybe a) Source # 

Methods

otraverse :: Applicative f => (Element (Maybe a) -> f (Element (Maybe a))) -> Maybe a -> f (Maybe a) Source #

omapM :: Applicative m => (Element (Maybe a) -> m (Element (Maybe a))) -> Maybe a -> m (Maybe a) Source #

MonoTraversable (Identity a) Source # 

Methods

otraverse :: Applicative f => (Element (Identity a) -> f (Element (Identity a))) -> Identity a -> f (Identity a) Source #

omapM :: Applicative m => (Element (Identity a) -> m (Element (Identity a))) -> Identity a -> m (Identity a) Source #

MonoTraversable (Option a) Source # 

Methods

otraverse :: Applicative f => (Element (Option a) -> f (Element (Option a))) -> Option a -> f (Option a) Source #

omapM :: Applicative m => (Element (Option a) -> m (Element (Option a))) -> Option a -> m (Option a) Source #

MonoTraversable (NonEmpty a) Source # 

Methods

otraverse :: Applicative f => (Element (NonEmpty a) -> f (Element (NonEmpty a))) -> NonEmpty a -> f (NonEmpty a) Source #

omapM :: Applicative m => (Element (NonEmpty a) -> m (Element (NonEmpty a))) -> NonEmpty a -> m (NonEmpty a) Source #

MonoTraversable (IntMap a) Source # 

Methods

otraverse :: Applicative f => (Element (IntMap a) -> f (Element (IntMap a))) -> IntMap a -> f (IntMap a) Source #

omapM :: Applicative m => (Element (IntMap a) -> m (Element (IntMap a))) -> IntMap a -> m (IntMap a) Source #

MonoTraversable (Tree a) Source # 

Methods

otraverse :: Applicative f => (Element (Tree a) -> f (Element (Tree a))) -> Tree a -> f (Tree a) Source #

omapM :: Applicative m => (Element (Tree a) -> m (Element (Tree a))) -> Tree a -> m (Tree a) Source #

MonoTraversable (Seq a) Source # 

Methods

otraverse :: Applicative f => (Element (Seq a) -> f (Element (Seq a))) -> Seq a -> f (Seq a) Source #

omapM :: Applicative m => (Element (Seq a) -> m (Element (Seq a))) -> Seq a -> m (Seq a) Source #

MonoTraversable (ViewL a) Source # 

Methods

otraverse :: Applicative f => (Element (ViewL a) -> f (Element (ViewL a))) -> ViewL a -> f (ViewL a) Source #

omapM :: Applicative m => (Element (ViewL a) -> m (Element (ViewL a))) -> ViewL a -> m (ViewL a) Source #

MonoTraversable (ViewR a) Source # 

Methods

otraverse :: Applicative f => (Element (ViewR a) -> f (Element (ViewR a))) -> ViewR a -> f (ViewR a) Source #

omapM :: Applicative m => (Element (ViewR a) -> m (Element (ViewR a))) -> ViewR a -> m (ViewR a) Source #

MonoTraversable (Vector a) Source # 

Methods

otraverse :: Applicative f => (Element (Vector a) -> f (Element (Vector a))) -> Vector a -> f (Vector a) Source #

omapM :: Applicative m => (Element (Vector a) -> m (Element (Vector a))) -> Vector a -> m (Vector a) Source #

Storable a => MonoTraversable (Vector a) Source # 

Methods

otraverse :: Applicative f => (Element (Vector a) -> f (Element (Vector a))) -> Vector a -> f (Vector a) Source #

omapM :: Applicative m => (Element (Vector a) -> m (Element (Vector a))) -> Vector a -> m (Vector a) Source #

Unbox a => MonoTraversable (Vector a) Source # 

Methods

otraverse :: Applicative f => (Element (Vector a) -> f (Element (Vector a))) -> Vector a -> f (Vector a) Source #

omapM :: Applicative m => (Element (Vector a) -> m (Element (Vector a))) -> Vector a -> m (Vector a) Source #

MonoTraversable mono => MonoTraversable (NonNull mono) Source # 

Methods

otraverse :: Applicative f => (Element (NonNull mono) -> f (Element (NonNull mono))) -> NonNull mono -> f (NonNull mono) Source #

omapM :: Applicative m => (Element (NonNull mono) -> m (Element (NonNull mono))) -> NonNull mono -> m (NonNull mono) Source #

MonoTraversable (Either a b) Source # 

Methods

otraverse :: Applicative f => (Element (Either a b) -> f (Element (Either a b))) -> Either a b -> f (Either a b) Source #

omapM :: Applicative m => (Element (Either a b) -> m (Element (Either a b))) -> Either a b -> m (Either a b) Source #

MonoTraversable (a, b) Source # 

Methods

otraverse :: Applicative f => (Element (a, b) -> f (Element (a, b))) -> (a, b) -> f (a, b) Source #

omapM :: Applicative m => (Element (a, b) -> m (Element (a, b))) -> (a, b) -> m (a, b) Source #

MonoTraversable (Map k v) Source # 

Methods

otraverse :: Applicative f => (Element (Map k v) -> f (Element (Map k v))) -> Map k v -> f (Map k v) Source #

omapM :: Applicative m => (Element (Map k v) -> m (Element (Map k v))) -> Map k v -> m (Map k v) Source #

Traversable f => MonoTraversable (MaybeT f a) Source # 

Methods

otraverse :: Applicative f => (Element (MaybeT f a) -> f (Element (MaybeT f a))) -> MaybeT f a -> f (MaybeT f a) Source #

omapM :: Applicative m => (Element (MaybeT f a) -> m (Element (MaybeT f a))) -> MaybeT f a -> m (MaybeT f a) Source #

Traversable f => MonoTraversable (ListT f a) Source # 

Methods

otraverse :: Applicative f => (Element (ListT f a) -> f (Element (ListT f a))) -> ListT f a -> f (ListT f a) Source #

omapM :: Applicative m => (Element (ListT f a) -> m (Element (ListT f a))) -> ListT f a -> m (ListT f a) Source #

MonoTraversable (HashMap k v) Source # 

Methods

otraverse :: Applicative f => (Element (HashMap k v) -> f (Element (HashMap k v))) -> HashMap k v -> f (HashMap k v) Source #

omapM :: Applicative m => (Element (HashMap k v) -> m (Element (HashMap k v))) -> HashMap k v -> m (HashMap k v) Source #

MonoTraversable (Const * m a) Source # 

Methods

otraverse :: Applicative f => (Element (Const * m a) -> f (Element (Const * m a))) -> Const * m a -> f (Const * m a) Source #

omapM :: Applicative m => (Element (Const * m a) -> m (Element (Const * m a))) -> Const * m a -> m (Const * m a) Source #

Traversable f => MonoTraversable (WriterT w f a) Source # 

Methods

otraverse :: Applicative f => (Element (WriterT w f a) -> f (Element (WriterT w f a))) -> WriterT w f a -> f (WriterT w f a) Source #

omapM :: Applicative m => (Element (WriterT w f a) -> m (Element (WriterT w f a))) -> WriterT w f a -> m (WriterT w f a) Source #

Traversable f => MonoTraversable (WriterT w f a) Source # 

Methods

otraverse :: Applicative f => (Element (WriterT w f a) -> f (Element (WriterT w f a))) -> WriterT w f a -> f (WriterT w f a) Source #

omapM :: Applicative m => (Element (WriterT w f a) -> m (Element (WriterT w f a))) -> WriterT w f a -> m (WriterT w f a) Source #

Traversable f => MonoTraversable (IdentityT * f a) Source # 

Methods

otraverse :: Applicative f => (Element (IdentityT * f a) -> f (Element (IdentityT * f a))) -> IdentityT * f a -> f (IdentityT * f a) Source #

omapM :: Applicative m => (Element (IdentityT * f a) -> m (Element (IdentityT * f a))) -> IdentityT * f a -> m (IdentityT * f a) Source #

(Traversable f, Traversable g) => MonoTraversable (Product * f g a) Source # 

Methods

otraverse :: Applicative f => (Element (Product * f g a) -> f (Element (Product * f g a))) -> Product * f g a -> f (Product * f g a) Source #

omapM :: Applicative m => (Element (Product * f g a) -> m (Element (Product * f g a))) -> Product * f g a -> m (Product * f g a) Source #

(Traversable f, Traversable g) => MonoTraversable (Compose * * f g a) Source # 

Methods

otraverse :: Applicative f => (Element (Compose * * f g a) -> f (Element (Compose * * f g a))) -> Compose * * f g a -> f (Compose * * f g a) Source #

omapM :: Applicative m => (Element (Compose * * f g a) -> m (Element (Compose * * f g a))) -> Compose * * f g a -> m (Compose * * f g a) Source #

ofor :: (MonoTraversable mono, Applicative f) => mono -> (Element mono -> f (Element mono)) -> f mono Source #

ofor is otraverse with its arguments flipped.

oforM :: (MonoTraversable mono, Applicative f) => mono -> (Element mono -> f (Element mono)) -> f mono Source #

oforM is omapM with its arguments flipped.

ofoldlUnwrap :: MonoFoldable mono => (x -> Element mono -> x) -> x -> (x -> b) -> mono -> b Source #

A strict left fold, together with an unwrap function.

This is convenient when the accumulator value is not the same as the final expected type. It is provided mainly for integration with the foldl package, to be used in conjunction with purely.

Since 0.3.1

ofoldMUnwrap :: (Monad m, MonoFoldable mono) => (x -> Element mono -> m x) -> m x -> (x -> m b) -> mono -> m b Source #

A monadic strict left fold, together with an unwrap function.

Similar to foldlUnwrap, but allows monadic actions. To be used with impurely from foldl.

Since 0.3.1

class MonoPointed mono where Source #

Typeclass for monomorphic containers that an element can be lifted into.

For any MonoFunctor, the following law holds:

omap f . opoint = opoint . f

Methods

opoint :: Element mono -> mono Source #

Lift an element into a monomorphic container.

opoint is the same as pure for an Applicative

opoint :: (Applicative f, f a ~ mono, Element (f a) ~ a) => Element mono -> mono Source #

Lift an element into a monomorphic container.

opoint is the same as pure for an Applicative

Instances

MonoPointed ByteString Source # 
MonoPointed ByteString Source # 
MonoPointed IntSet Source # 
MonoPointed Text Source # 
MonoPointed Text Source # 
MonoPointed [a] Source # 

Methods

opoint :: Element [a] -> [a] Source #

MonoPointed (Maybe a) Source # 

Methods

opoint :: Element (Maybe a) -> Maybe a Source #

MonoPointed (IO a) Source # 

Methods

opoint :: Element (IO a) -> IO a Source #

MonoPointed (Identity a) Source # 

Methods

opoint :: Element (Identity a) -> Identity a Source #

MonoPointed (Option a) Source # 

Methods

opoint :: Element (Option a) -> Option a Source #

MonoPointed (NonEmpty a) Source # 

Methods

opoint :: Element (NonEmpty a) -> NonEmpty a Source #

MonoPointed (ZipList a) Source # 

Methods

opoint :: Element (ZipList a) -> ZipList a Source #

MonoPointed (Tree a) Source # 

Methods

opoint :: Element (Tree a) -> Tree a Source #

MonoPointed (Seq a) Source # 

Methods

opoint :: Element (Seq a) -> Seq a Source #

MonoPointed (ViewL a) Source # 

Methods

opoint :: Element (ViewL a) -> ViewL a Source #

MonoPointed (ViewR a) Source # 

Methods

opoint :: Element (ViewR a) -> ViewR a Source #

MonoPointed (Set a) Source # 

Methods

opoint :: Element (Set a) -> Set a Source #

Hashable a => MonoPointed (HashSet a) Source # 

Methods

opoint :: Element (HashSet a) -> HashSet a Source #

MonoPointed (Vector a) Source # 

Methods

opoint :: Element (Vector a) -> Vector a Source #

Storable a => MonoPointed (Vector a) Source # 

Methods

opoint :: Element (Vector a) -> Vector a Source #

Unbox a => MonoPointed (Vector a) Source # 

Methods

opoint :: Element (Vector a) -> Vector a Source #

MonoPointed mono => MonoPointed (NonNull mono) Source # 

Methods

opoint :: Element (NonNull mono) -> NonNull mono Source #

MonoPointed (r -> a) Source # 

Methods

opoint :: Element (r -> a) -> r -> a Source #

MonoPointed (Either a b) Source # 

Methods

opoint :: Element (Either a b) -> Either a b Source #

Monoid a => MonoPointed (a, b) Source # 

Methods

opoint :: Element (a, b) -> (a, b) Source #

Monad m => MonoPointed (WrappedMonad m a) Source # 
Applicative f => MonoPointed (MaybeT f a) Source # 

Methods

opoint :: Element (MaybeT f a) -> MaybeT f a Source #

Applicative m => MonoPointed (ListT m a) Source # 

Methods

opoint :: Element (ListT m a) -> ListT m a Source #

Arrow a => MonoPointed (WrappedArrow a b c) Source # 

Methods

opoint :: Element (WrappedArrow a b c) -> WrappedArrow a b c Source #

Monoid m => MonoPointed (Const * m a) Source # 

Methods

opoint :: Element (Const * m a) -> Const * m a Source #

(Monoid w, Applicative m) => MonoPointed (WriterT w m a) Source # 

Methods

opoint :: Element (WriterT w m a) -> WriterT w m a Source #

(Monoid w, Applicative m) => MonoPointed (WriterT w m a) Source # 

Methods

opoint :: Element (WriterT w m a) -> WriterT w m a Source #

Applicative m => MonoPointed (StateT s m a) Source # 

Methods

opoint :: Element (StateT s m a) -> StateT s m a Source #

Applicative m => MonoPointed (StateT s m a) Source # 

Methods

opoint :: Element (StateT s m a) -> StateT s m a Source #

Applicative m => MonoPointed (IdentityT * m a) Source # 

Methods

opoint :: Element (IdentityT * m a) -> IdentityT * m a Source #

(Applicative f, Applicative g) => MonoPointed (Product * f g a) Source # 

Methods

opoint :: Element (Product * f g a) -> Product * f g a Source #

Applicative m => MonoPointed (ReaderT * r m a) Source # 

Methods

opoint :: Element (ReaderT * r m a) -> ReaderT * r m a Source #

MonoPointed (ContT * r m a) Source # 

Methods

opoint :: Element (ContT * r m a) -> ContT * r m a Source #

(Applicative f, Applicative g) => MonoPointed (Compose * * f g a) Source # 

Methods

opoint :: Element (Compose * * f g a) -> Compose * * f g a Source #

(Monoid w, Applicative m) => MonoPointed (RWST r w s m a) Source # 

Methods

opoint :: Element (RWST r w s m a) -> RWST r w s m a Source #

(Monoid w, Applicative m) => MonoPointed (RWST r w s m a) Source # 

Methods

opoint :: Element (RWST r w s m a) -> RWST r w s m a Source #

class MonoFunctor mono => MonoComonad mono where Source #

Typeclass for monomorphic containers where it is always okay to "extract" a value from with oextract, and where you can extrapolate any "extracting" function to be a function on the whole part with oextend.

oextend and oextract should work together following the laws:

oextend oextract      = id
oextract . oextend f  = f
oextend f . oextend g = oextend (f . oextend g)

As an intuition, oextend f uses f to "build up" a new mono with pieces from the old one received by f.

Minimal complete definition

oextract, oextend

Methods

oextract :: mono -> Element mono Source #

Extract an element from mono. Can be thought of as a dual concept to opoint.

oextend :: (mono -> Element mono) -> mono -> mono Source #

Extend a mono -> Element mono function to be a mono -> mono; that is, builds a new mono from the old one by using pieces glimpsed from the given function.

Instances

MonoComonad (ViewL a) Source # 

Methods

oextract :: ViewL a -> Element (ViewL a) Source #

oextend :: (ViewL a -> Element (ViewL a)) -> ViewL a -> ViewL a Source #

MonoComonad (ViewR a) Source # 

Methods

oextract :: ViewR a -> Element (ViewR a) Source #

oextend :: (ViewR a -> Element (ViewR a)) -> ViewR a -> ViewR a Source #

IsSequence mono => MonoComonad (NonNull mono) Source # 

Methods

oextract :: NonNull mono -> Element (NonNull mono) Source #

oextend :: (NonNull mono -> Element (NonNull mono)) -> NonNull mono -> NonNull mono Source #

class MonoFoldable mono => GrowingAppend mono Source #

Containers which, when two values are combined, the combined length is no less than the larger of the two inputs. In code:

olength (x <> y) >= max (olength x) (olength y)

This class has no methods, and is simply used to assert that this law holds, in order to provide guarantees of correctness (see, for instance, Data.NonNull).

This should have a Semigroup superclass constraint, however, due to Semigroup only recently moving to base, some packages do not provide instances.

ointercalate :: (MonoFoldable mono, Monoid (Element mono)) => Element mono -> mono -> Element mono Source #

intercalate seq seqs inserts seq in between seqs and concatenates the result.

Since: 1.0.0