distributors-0.6.0.0: Unifying Parsers, Printers & Grammars
Copyright(C) 2026 - Eitan Chatav
LicenseBSD-style (see the file LICENSE)
MaintainerEitan Chatav <eitan.chatav@gmail.com>
Stabilityprovisional
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Fail.Try

Description

 
Synopsis

MonadTry

class (MonadFail m, MonadPlus m, Filterable m, forall x. BackusNaurForm (m x)) => MonadTry (m :: Type -> Type) where Source #

MonadTry is a failure handling interface, with fail & try and redundant alternation & filtration operators.

empty = mzero
(<|>) = mplus
filter = mfilter

MonadTry also supports the BackusNaurForm interface for tracing failures and the following invariant should hold.

fail label = rule label empty

Minimal complete definition

Nothing

Methods

try :: m a -> m a Source #

A handler for failures. Used for backtracking state on failure in Parsector.

default try :: m a -> m a Source #

Instances

Instances details
MonadTry ReadP Source # 
Instance details

Defined in Control.Monad.Fail.Try

Methods

try :: ReadP a -> ReadP a Source #

Categorized (Item s) => MonadTry (Parsector s a) Source # 
Instance details

Defined in Data.Profunctor.Grammar.Parsector

Methods

try :: Parsector s a a0 -> Parsector s a a0 Source #

(Alternative m, Monad m, Filterable m) => MonadTry (Parsor s m a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

try :: Parsor s m a a0 -> Parsor s m a a0 Source #

(Alternative m, Monad m, Filterable m) => MonadTry (Printor s m a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

try :: Printor s m a a0 -> Printor s m a a0 Source #

MonadTry m => MonadTry (Joker m a) Source # 
Instance details

Defined in Control.Monad.Fail.Try

Methods

try :: Joker m a a0 -> Joker m a a0 Source #

MonadFail

class Monad m => MonadFail (m :: Type -> Type) where #

When a value is bound in do-notation, the pattern on the left hand side of <- might not match. In this case, this class provides a function to recover.

A Monad without a MonadFail instance may only be used in conjunction with pattern that always match, such as newtypes, tuples, data types with only a single data constructor, and irrefutable patterns (~pat).

Instances of MonadFail should satisfy the following law: fail s should be a left zero for >>=,

fail s >>= f  =  fail s

If your Monad is also MonadPlus, a popular definition is

fail _ = mzero

fail s should be an action that runs in the monad itself, not an exception (except in instances of MonadIO). In particular, fail should not be implemented in terms of error.

Since: base-4.9.0.0

Methods

fail :: String -> m a #

Instances

Instances details
MonadFail P

Since: base-4.9.0.0

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

fail :: String -> P a #

MonadFail ReadP

Since: base-4.9.0.0

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

fail :: String -> ReadP a #

MonadFail ReadPrec

Since: base-4.9.0.0

Instance details

Defined in Text.ParserCombinators.ReadPrec

Methods

fail :: String -> ReadPrec a #

MonadFail IO

Since: base-4.9.0.0

Instance details

Defined in Control.Monad.Fail

Methods

fail :: String -> IO a #

MonadFail Array 
Instance details

Defined in Data.Primitive.Array

Methods

fail :: String -> Array a #

MonadFail SmallArray 
Instance details

Defined in Data.Primitive.SmallArray

Methods

fail :: String -> SmallArray a #

MonadFail Q 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

fail :: String -> Q a #

MonadFail Vector 
Instance details

Defined in Data.Vector

Methods

fail :: String -> Vector a #

MonadFail Vector 
Instance details

Defined in Data.Vector.Strict

Methods

fail :: String -> Vector a #

MonadFail Maybe

Since: base-4.9.0.0

Instance details

Defined in Control.Monad.Fail

Methods

fail :: String -> Maybe a #

MonadFail []

Since: base-4.9.0.0

Instance details

Defined in Control.Monad.Fail

Methods

fail :: String -> [a] #

Monad m => MonadFail (PropertyM m) 
Instance details

Defined in Test.QuickCheck.Monadic

Methods

fail :: String -> PropertyM m a #

Monad m => MonadFail (MaybeT m) 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

fail :: String -> MaybeT m a #

MonadFail f => MonadFail (Ap f)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

fail :: String -> Ap f a #

MonadFail (bi a) => MonadFail (Biap bi a) 
Instance details

Defined in Data.Bifunctor.Biap

Methods

fail :: String -> Biap bi a a0 #

Categorized (Item s) => MonadFail (Parsector s a) Source # 
Instance details

Defined in Data.Profunctor.Grammar.Parsector

Methods

fail :: String -> Parsector s a a0 #

(Functor f, MonadFail m) => MonadFail (FreeT f m) 
Instance details

Defined in Control.Monad.Trans.Free

Methods

fail :: String -> FreeT f m a #

(Monoid w, MonadFail m) => MonadFail (AccumT w m) 
Instance details

Defined in Control.Monad.Trans.Accum

Methods

fail :: String -> AccumT w m a #

MonadFail m => MonadFail (ExceptT e m) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

fail :: String -> ExceptT e m a #

MonadFail m => MonadFail (IdentityT m) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

fail :: String -> IdentityT m a #

MonadFail m => MonadFail (ReaderT r m) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

fail :: String -> ReaderT r m a #

MonadFail m => MonadFail (SelectT r m) 
Instance details

Defined in Control.Monad.Trans.Select

Methods

fail :: String -> SelectT r m a #

MonadFail m => MonadFail (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

fail :: String -> StateT s m a #

MonadFail m => MonadFail (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Strict

Methods

fail :: String -> StateT s m a #

MonadFail m => MonadFail (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.CPS

Methods

fail :: String -> WriterT w m a #

(Monoid w, MonadFail m) => MonadFail (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

fail :: String -> WriterT w m a #

(Monoid w, MonadFail m) => MonadFail (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Strict

Methods

fail :: String -> WriterT w m a #

MonadFail m => MonadFail (Reverse m) 
Instance details

Defined in Data.Functor.Reverse

Methods

fail :: String -> Reverse m a #

(Alternative m, Monad m) => MonadFail (Parsor s m a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

fail :: String -> Parsor s m a a0 #

(Alternative m, Monad m) => MonadFail (Printor s m a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

fail :: String -> Printor s m a a0 #

MonadFail m => MonadFail (ContT r m) 
Instance details

Defined in Control.Monad.Trans.Cont

Methods

fail :: String -> ContT r m a #

MonadFail m => MonadFail (Joker m a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

fail :: String -> Joker m a a0 #

MonadFail m => MonadFail (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.CPS

Methods

fail :: String -> RWST r w s m a #

(Monoid w, MonadFail m) => MonadFail (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

fail :: String -> RWST r w s m a #

(Monoid w, MonadFail m) => MonadFail (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

fail :: String -> RWST r w s m a #

MonadPlus

class (Alternative m, Monad m) => MonadPlus (m :: Type -> Type) where #

Monads that also support choice and failure.

Minimal complete definition

Nothing

Methods

mzero :: m a #

The identity of mplus. It should also satisfy the equations

mzero >>= f  =  mzero
v >> mzero   =  mzero

The default definition is

mzero = empty

mplus :: m a -> m a -> m a #

An associative operation. The default definition is

mplus = (<|>)

Instances

Instances details
MonadPlus STM

Takes the first non-retrying STM action.

Since: base-4.3.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

mzero :: STM a #

mplus :: STM a -> STM a -> STM a #

MonadPlus P

Since: base-2.1

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

mzero :: P a #

mplus :: P a -> P a -> P a #

MonadPlus ReadP

Since: base-2.1

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

mzero :: ReadP a #

mplus :: ReadP a -> ReadP a -> ReadP a #

MonadPlus ReadPrec

Since: base-2.1

Instance details

Defined in Text.ParserCombinators.ReadPrec

Methods

mzero :: ReadPrec a #

mplus :: ReadPrec a -> ReadPrec a -> ReadPrec a #

MonadPlus Seq 
Instance details

Defined in Data.Sequence.Internal

Methods

mzero :: Seq a #

mplus :: Seq a -> Seq a -> Seq a #

MonadPlus IO

Takes the first non-throwing IO action's result. mzero throws an exception.

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

mzero :: IO a #

mplus :: IO a -> IO a -> IO a #

MonadPlus Deque 
Instance details

Defined in Control.Lens.Internal.Deque

Methods

mzero :: Deque a #

mplus :: Deque a -> Deque a -> Deque a #

MonadPlus Array 
Instance details

Defined in Data.Primitive.Array

Methods

mzero :: Array a #

mplus :: Array a -> Array a -> Array a #

MonadPlus SmallArray 
Instance details

Defined in Data.Primitive.SmallArray

MonadPlus Vector 
Instance details

Defined in Data.Vector

Methods

mzero :: Vector a #

mplus :: Vector a -> Vector a -> Vector a #

MonadPlus Vector 
Instance details

Defined in Data.Vector.Strict

Methods

mzero :: Vector a #

mplus :: Vector a -> Vector a -> Vector a #

MonadPlus Maybe

Picks the leftmost Just value, or, alternatively, Nothing.

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mzero :: Maybe a #

mplus :: Maybe a -> Maybe a -> Maybe a #

MonadPlus []

Combines lists by concatenation, starting from the empty list.

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

mzero :: [a] #

mplus :: [a] -> [a] -> [a] #

(ArrowApply a, ArrowPlus a) => MonadPlus (ArrowMonad a)

Since: base-4.6.0.0

Instance details

Defined in Control.Arrow

Methods

mzero :: ArrowMonad a a0 #

mplus :: ArrowMonad a a0 -> ArrowMonad a a0 -> ArrowMonad a a0 #

MonadPlus (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Proxy

Methods

mzero :: Proxy a #

mplus :: Proxy a -> Proxy a -> Proxy a #

MonadPlus (U1 :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

mzero :: U1 a #

mplus :: U1 a -> U1 a -> U1 a #

MonadPlus v => MonadPlus (Free v)

This violates the MonadPlus laws, handle with care.

Instance details

Defined in Control.Monad.Free

Methods

mzero :: Free v a #

mplus :: Free v a -> Free v a -> Free v a #

MonadPlus m => MonadPlus (Yoneda m) 
Instance details

Defined in Data.Functor.Yoneda

Methods

mzero :: Yoneda m a #

mplus :: Yoneda m a -> Yoneda m a -> Yoneda m a #

MonadPlus (ReifiedFold s) 
Instance details

Defined in Control.Lens.Reified

Methods

mzero :: ReifiedFold s a #

mplus :: ReifiedFold s a -> ReifiedFold s a -> ReifiedFold s a #

Monad m => MonadPlus (MaybeT m) 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

mzero :: MaybeT m a #

mplus :: MaybeT m a -> MaybeT m a -> MaybeT m a #

MonadPlus m => MonadPlus (Kleisli m a)

Since: base-4.14.0.0

Instance details

Defined in Control.Arrow

Methods

mzero :: Kleisli m a a0 #

mplus :: Kleisli m a a0 -> Kleisli m a a0 -> Kleisli m a a0 #

MonadPlus f => MonadPlus (Ap f)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

mzero :: Ap f a #

mplus :: Ap f a -> Ap f a -> Ap f a #

MonadPlus f => MonadPlus (Alt f)

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

mzero :: Alt f a #

mplus :: Alt f a -> Alt f a -> Alt f a #

MonadPlus f => MonadPlus (Rec1 f)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

mzero :: Rec1 f a #

mplus :: Rec1 f a -> Rec1 f a -> Rec1 f a #

MonadPlus (bi a) => MonadPlus (Biap bi a) 
Instance details

Defined in Data.Bifunctor.Biap

Methods

mzero :: Biap bi a a0 #

mplus :: Biap bi a a0 -> Biap bi a a0 -> Biap bi a a0 #

Categorized (Item s) => MonadPlus (Parsector s a) Source # 
Instance details

Defined in Data.Profunctor.Grammar.Parsector

Methods

mzero :: Parsector s a a0 #

mplus :: Parsector s a a0 -> Parsector s a a0 -> Parsector s a a0 #

(Functor f, MonadPlus m) => MonadPlus (FreeT f m) 
Instance details

Defined in Control.Monad.Trans.Free

Methods

mzero :: FreeT f m a #

mplus :: FreeT f m a -> FreeT f m a -> FreeT f m a #

(Monoid w, Functor m, MonadPlus m) => MonadPlus (AccumT w m) 
Instance details

Defined in Control.Monad.Trans.Accum

Methods

mzero :: AccumT w m a #

mplus :: AccumT w m a -> AccumT w m a -> AccumT w m a #

(Monad m, Monoid e) => MonadPlus (ExceptT e m) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

mzero :: ExceptT e m a #

mplus :: ExceptT e m a -> ExceptT e m a -> ExceptT e m a #

MonadPlus m => MonadPlus (IdentityT m) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

mzero :: IdentityT m a #

mplus :: IdentityT m a -> IdentityT m a -> IdentityT m a #

MonadPlus m => MonadPlus (ReaderT r m) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

mzero :: ReaderT r m a #

mplus :: ReaderT r m a -> ReaderT r m a -> ReaderT r m a #

MonadPlus m => MonadPlus (SelectT r m) 
Instance details

Defined in Control.Monad.Trans.Select

Methods

mzero :: SelectT r m a #

mplus :: SelectT r m a -> SelectT r m a -> SelectT r m a #

MonadPlus m => MonadPlus (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

mzero :: StateT s m a #

mplus :: StateT s m a -> StateT s m a -> StateT s m a #

MonadPlus m => MonadPlus (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Strict

Methods

mzero :: StateT s m a #

mplus :: StateT s m a -> StateT s m a -> StateT s m a #

(Functor m, MonadPlus m) => MonadPlus (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.CPS

Methods

mzero :: WriterT w m a #

mplus :: WriterT w m a -> WriterT w m a -> WriterT w m a #

(Monoid w, MonadPlus m) => MonadPlus (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

mzero :: WriterT w m a #

mplus :: WriterT w m a -> WriterT w m a -> WriterT w m a #

(Monoid w, MonadPlus m) => MonadPlus (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Strict

Methods

mzero :: WriterT w m a #

mplus :: WriterT w m a -> WriterT w m a -> WriterT w m a #

MonadPlus m => MonadPlus (Reverse m)

Derived instance.

Instance details

Defined in Data.Functor.Reverse

Methods

mzero :: Reverse m a #

mplus :: Reverse m a -> Reverse m a -> Reverse m a #

(MonadPlus f, MonadPlus g) => MonadPlus (Product f g)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

Methods

mzero :: Product f g a #

mplus :: Product f g a -> Product f g a -> Product f g a #

(MonadPlus f, MonadPlus g) => MonadPlus (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

mzero :: (f :*: g) a #

mplus :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a #

(Alternative m, Monad m) => MonadPlus (Parsor s m a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

mzero :: Parsor s m a a0 #

mplus :: Parsor s m a a0 -> Parsor s m a a0 -> Parsor s m a a0 #

(Alternative f, Monad f) => MonadPlus (Printor s f a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

mzero :: Printor s f a a0 #

mplus :: Printor s f a a0 -> Printor s f a a0 -> Printor s f a a0 #

MonadPlus f => MonadPlus (Star f a) 
Instance details

Defined in Data.Profunctor.Types

Methods

mzero :: Star f a a0 #

mplus :: Star f a a0 -> Star f a a0 -> Star f a a0 #

MonadPlus f => MonadPlus (M1 i c f)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

mzero :: M1 i c f a #

mplus :: M1 i c f a -> M1 i c f a -> M1 i c f a #

MonadPlus m => MonadPlus (Joker m a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mzero :: Joker m a a0 #

mplus :: Joker m a a0 -> Joker m a a0 -> Joker m a a0 #

(Functor m, MonadPlus m) => MonadPlus (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.CPS

Methods

mzero :: RWST r w s m a #

mplus :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

mzero :: RWST r w s m a #

mplus :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

(Monoid w, MonadPlus m) => MonadPlus (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

mzero :: RWST r w s m a #

mplus :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

Alternative

class Applicative f => Alternative (f :: Type -> Type) where #

A monoid on applicative functors.

If defined, some and many should be the least solutions of the equations:

Minimal complete definition

empty, (<|>)

Methods

empty :: f a #

The identity of <|>

(<|>) :: f a -> f a -> f a infixl 3 #

An associative binary operation

some :: f a -> f [a] #

One or more.

many :: f a -> f [a] #

Zero or more.

Instances

Instances details
Alternative ZipList

Since: base-4.11.0.0

Instance details

Defined in Control.Applicative

Methods

empty :: ZipList a #

(<|>) :: ZipList a -> ZipList a -> ZipList a #

some :: ZipList a -> ZipList [a] #

many :: ZipList a -> ZipList [a] #

Alternative STM

Takes the first non-retrying STM action.

Since: base-4.8.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

empty :: STM a #

(<|>) :: STM a -> STM a -> STM a #

some :: STM a -> STM [a] #

many :: STM a -> STM [a] #

Alternative P

Since: base-4.5.0.0

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

empty :: P a #

(<|>) :: P a -> P a -> P a #

some :: P a -> P [a] #

many :: P a -> P [a] #

Alternative ReadP

Since: base-4.6.0.0

Instance details

Defined in Text.ParserCombinators.ReadP

Methods

empty :: ReadP a #

(<|>) :: ReadP a -> ReadP a -> ReadP a #

some :: ReadP a -> ReadP [a] #

many :: ReadP a -> ReadP [a] #

Alternative ReadPrec

Since: base-4.6.0.0

Instance details

Defined in Text.ParserCombinators.ReadPrec

Methods

empty :: ReadPrec a #

(<|>) :: ReadPrec a -> ReadPrec a -> ReadPrec a #

some :: ReadPrec a -> ReadPrec [a] #

many :: ReadPrec a -> ReadPrec [a] #

Alternative Seq

Since: containers-0.5.4

Instance details

Defined in Data.Sequence.Internal

Methods

empty :: Seq a #

(<|>) :: Seq a -> Seq a -> Seq a #

some :: Seq a -> Seq [a] #

many :: Seq a -> Seq [a] #

Alternative IO

Takes the first non-throwing IO action's result. empty throws an exception.

Since: base-4.9.0.0

Instance details

Defined in GHC.Base

Methods

empty :: IO a #

(<|>) :: IO a -> IO a -> IO a #

some :: IO a -> IO [a] #

many :: IO a -> IO [a] #

Alternative Deque 
Instance details

Defined in Control.Lens.Internal.Deque

Methods

empty :: Deque a #

(<|>) :: Deque a -> Deque a -> Deque a #

some :: Deque a -> Deque [a] #

many :: Deque a -> Deque [a] #

Alternative Array 
Instance details

Defined in Data.Primitive.Array

Methods

empty :: Array a #

(<|>) :: Array a -> Array a -> Array a #

some :: Array a -> Array [a] #

many :: Array a -> Array [a] #

Alternative SmallArray 
Instance details

Defined in Data.Primitive.SmallArray

Alternative Vector 
Instance details

Defined in Data.Vector

Methods

empty :: Vector a #

(<|>) :: Vector a -> Vector a -> Vector a #

some :: Vector a -> Vector [a] #

many :: Vector a -> Vector [a] #

Alternative Vector 
Instance details

Defined in Data.Vector.Strict

Methods

empty :: Vector a #

(<|>) :: Vector a -> Vector a -> Vector a #

some :: Vector a -> Vector [a] #

many :: Vector a -> Vector [a] #

Alternative Maybe

Picks the leftmost Just value, or, alternatively, Nothing.

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

empty :: Maybe a #

(<|>) :: Maybe a -> Maybe a -> Maybe a #

some :: Maybe a -> Maybe [a] #

many :: Maybe a -> Maybe [a] #

Alternative []

Combines lists by concatenation, starting from the empty list.

Since: base-2.1

Instance details

Defined in GHC.Base

Methods

empty :: [a] #

(<|>) :: [a] -> [a] -> [a] #

some :: [a] -> [[a]] #

many :: [a] -> [[a]] #

MonadPlus m => Alternative (WrappedMonad m)

Since: base-2.1

Instance details

Defined in Control.Applicative

Methods

empty :: WrappedMonad m a #

(<|>) :: WrappedMonad m a -> WrappedMonad m a -> WrappedMonad m a #

some :: WrappedMonad m a -> WrappedMonad m [a] #

many :: WrappedMonad m a -> WrappedMonad m [a] #

ArrowPlus a => Alternative (ArrowMonad a)

Since: base-4.6.0.0

Instance details

Defined in Control.Arrow

Methods

empty :: ArrowMonad a a0 #

(<|>) :: ArrowMonad a a0 -> ArrowMonad a a0 -> ArrowMonad a a0 #

some :: ArrowMonad a a0 -> ArrowMonad a [a0] #

many :: ArrowMonad a a0 -> ArrowMonad a [a0] #

Alternative (Proxy :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in Data.Proxy

Methods

empty :: Proxy a #

(<|>) :: Proxy a -> Proxy a -> Proxy a #

some :: Proxy a -> Proxy [a] #

many :: Proxy a -> Proxy [a] #

Alternative (U1 :: Type -> Type)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: U1 a #

(<|>) :: U1 a -> U1 a -> U1 a #

some :: U1 a -> U1 [a] #

many :: U1 a -> U1 [a] #

Alternative v => Alternative (Free v)

This violates the Alternative laws, handle with care.

Instance details

Defined in Control.Monad.Free

Methods

empty :: Free v a #

(<|>) :: Free v a -> Free v a -> Free v a #

some :: Free v a -> Free v [a] #

many :: Free v a -> Free v [a] #

Alternative f => Alternative (Yoneda f) 
Instance details

Defined in Data.Functor.Yoneda

Methods

empty :: Yoneda f a #

(<|>) :: Yoneda f a -> Yoneda f a -> Yoneda f a #

some :: Yoneda f a -> Yoneda f [a] #

many :: Yoneda f a -> Yoneda f [a] #

Alternative (ReifiedFold s) 
Instance details

Defined in Control.Lens.Reified

Methods

empty :: ReifiedFold s a #

(<|>) :: ReifiedFold s a -> ReifiedFold s a -> ReifiedFold s a #

some :: ReifiedFold s a -> ReifiedFold s [a] #

many :: ReifiedFold s a -> ReifiedFold s [a] #

Alternative f => Alternative (Lift f)

A combination is Pure only either part is.

Instance details

Defined in Control.Applicative.Lift

Methods

empty :: Lift f a #

(<|>) :: Lift f a -> Lift f a -> Lift f a #

some :: Lift f a -> Lift f [a] #

many :: Lift f a -> Lift f [a] #

(Functor m, Monad m) => Alternative (MaybeT m) 
Instance details

Defined in Control.Monad.Trans.Maybe

Methods

empty :: MaybeT m a #

(<|>) :: MaybeT m a -> MaybeT m a -> MaybeT m a #

some :: MaybeT m a -> MaybeT m [a] #

many :: MaybeT m a -> MaybeT m [a] #

Alternative f => Alternative (WrappedFoldable f) 
Instance details

Defined in Witherable

(ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b)

Since: base-2.1

Instance details

Defined in Control.Applicative

Methods

empty :: WrappedArrow a b a0 #

(<|>) :: WrappedArrow a b a0 -> WrappedArrow a b a0 -> WrappedArrow a b a0 #

some :: WrappedArrow a b a0 -> WrappedArrow a b [a0] #

many :: WrappedArrow a b a0 -> WrappedArrow a b [a0] #

Alternative m => Alternative (Kleisli m a)

Since: base-4.14.0.0

Instance details

Defined in Control.Arrow

Methods

empty :: Kleisli m a a0 #

(<|>) :: Kleisli m a a0 -> Kleisli m a a0 -> Kleisli m a a0 #

some :: Kleisli m a a0 -> Kleisli m a [a0] #

many :: Kleisli m a a0 -> Kleisli m a [a0] #

Alternative f => Alternative (Ap f)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

empty :: Ap f a #

(<|>) :: Ap f a -> Ap f a -> Ap f a #

some :: Ap f a -> Ap f [a] #

many :: Ap f a -> Ap f [a] #

Alternative f => Alternative (Alt f)

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

empty :: Alt f a #

(<|>) :: Alt f a -> Alt f a -> Alt f a #

some :: Alt f a -> Alt f [a] #

many :: Alt f a -> Alt f [a] #

(Generic1 f, Alternative (Rep1 f)) => Alternative (Generically1 f)

Since: base-4.17.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: Generically1 f a #

(<|>) :: Generically1 f a -> Generically1 f a -> Generically1 f a #

some :: Generically1 f a -> Generically1 f [a] #

many :: Generically1 f a -> Generically1 f [a] #

Alternative f => Alternative (Rec1 f)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: Rec1 f a #

(<|>) :: Rec1 f a -> Rec1 f a -> Rec1 f a #

some :: Rec1 f a -> Rec1 f [a] #

many :: Rec1 f a -> Rec1 f [a] #

Alternative (bi a) => Alternative (Biap bi a) 
Instance details

Defined in Data.Bifunctor.Biap

Methods

empty :: Biap bi a a0 #

(<|>) :: Biap bi a a0 -> Biap bi a a0 -> Biap bi a a0 #

some :: Biap bi a a0 -> Biap bi a [a0] #

many :: Biap bi a a0 -> Biap bi a [a0] #

Alternative (Altar a b) Source # 
Instance details

Defined in Control.Lens.Wither

Methods

empty :: Altar a b a0 #

(<|>) :: Altar a b a0 -> Altar a b a0 -> Altar a b a0 #

some :: Altar a b a0 -> Altar a b [a0] #

many :: Altar a b a0 -> Altar a b [a0] #

KleeneStarAlgebra k => Alternative (Grammor k a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

empty :: Grammor k a a0 #

(<|>) :: Grammor k a a0 -> Grammor k a a0 -> Grammor k a a0 #

some :: Grammor k a a0 -> Grammor k a [a0] #

many :: Grammor k a a0 -> Grammor k a [a0] #

Categorized (Item s) => Alternative (Parsector s a) Source # 
Instance details

Defined in Data.Profunctor.Grammar.Parsector

Methods

empty :: Parsector s a a0 #

(<|>) :: Parsector s a a0 -> Parsector s a a0 -> Parsector s a a0 #

some :: Parsector s a a0 -> Parsector s a [a0] #

many :: Parsector s a a0 -> Parsector s a [a0] #

(Functor f, MonadPlus m) => Alternative (FreeT f m) 
Instance details

Defined in Control.Monad.Trans.Free

Methods

empty :: FreeT f m a #

(<|>) :: FreeT f m a -> FreeT f m a -> FreeT f m a #

some :: FreeT f m a -> FreeT f m [a] #

many :: FreeT f m a -> FreeT f m [a] #

(Profunctor p, ArrowPlus p) => Alternative (Closure p a) 
Instance details

Defined in Data.Profunctor.Closed

Methods

empty :: Closure p a a0 #

(<|>) :: Closure p a a0 -> Closure p a a0 -> Closure p a a0 #

some :: Closure p a a0 -> Closure p a [a0] #

many :: Closure p a a0 -> Closure p a [a0] #

(Profunctor p, ArrowPlus p) => Alternative (Tambara p a) 
Instance details

Defined in Data.Profunctor.Strong

Methods

empty :: Tambara p a a0 #

(<|>) :: Tambara p a a0 -> Tambara p a a0 -> Tambara p a a0 #

some :: Tambara p a a0 -> Tambara p a [a0] #

many :: Tambara p a a0 -> Tambara p a [a0] #

(Profunctor p, Alternative (p a)) => Alternative (Coyoneda p a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

empty :: Coyoneda p a a0 #

(<|>) :: Coyoneda p a a0 -> Coyoneda p a a0 -> Coyoneda p a a0 #

some :: Coyoneda p a a0 -> Coyoneda p a [a0] #

many :: Coyoneda p a a0 -> Coyoneda p a [a0] #

(Profunctor p, Alternative (p a)) => Alternative (Yoneda p a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

empty :: Yoneda p a a0 #

(<|>) :: Yoneda p a a0 -> Yoneda p a a0 -> Yoneda p a a0 #

some :: Yoneda p a a0 -> Yoneda p a [a0] #

many :: Yoneda p a a0 -> Yoneda p a [a0] #

Alternative f => Alternative (Backwards f)

Try alternatives in the same order as f.

Instance details

Defined in Control.Applicative.Backwards

Methods

empty :: Backwards f a #

(<|>) :: Backwards f a -> Backwards f a -> Backwards f a #

some :: Backwards f a -> Backwards f [a] #

many :: Backwards f a -> Backwards f [a] #

(Monoid w, Functor m, MonadPlus m) => Alternative (AccumT w m) 
Instance details

Defined in Control.Monad.Trans.Accum

Methods

empty :: AccumT w m a #

(<|>) :: AccumT w m a -> AccumT w m a -> AccumT w m a #

some :: AccumT w m a -> AccumT w m [a] #

many :: AccumT w m a -> AccumT w m [a] #

(Functor m, Monad m, Monoid e) => Alternative (ExceptT e m) 
Instance details

Defined in Control.Monad.Trans.Except

Methods

empty :: ExceptT e m a #

(<|>) :: ExceptT e m a -> ExceptT e m a -> ExceptT e m a #

some :: ExceptT e m a -> ExceptT e m [a] #

many :: ExceptT e m a -> ExceptT e m [a] #

Alternative m => Alternative (IdentityT m) 
Instance details

Defined in Control.Monad.Trans.Identity

Methods

empty :: IdentityT m a #

(<|>) :: IdentityT m a -> IdentityT m a -> IdentityT m a #

some :: IdentityT m a -> IdentityT m [a] #

many :: IdentityT m a -> IdentityT m [a] #

Alternative m => Alternative (ReaderT r m) 
Instance details

Defined in Control.Monad.Trans.Reader

Methods

empty :: ReaderT r m a #

(<|>) :: ReaderT r m a -> ReaderT r m a -> ReaderT r m a #

some :: ReaderT r m a -> ReaderT r m [a] #

many :: ReaderT r m a -> ReaderT r m [a] #

(Functor m, MonadPlus m) => Alternative (SelectT r m) 
Instance details

Defined in Control.Monad.Trans.Select

Methods

empty :: SelectT r m a #

(<|>) :: SelectT r m a -> SelectT r m a -> SelectT r m a #

some :: SelectT r m a -> SelectT r m [a] #

many :: SelectT r m a -> SelectT r m [a] #

(Functor m, MonadPlus m) => Alternative (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Lazy

Methods

empty :: StateT s m a #

(<|>) :: StateT s m a -> StateT s m a -> StateT s m a #

some :: StateT s m a -> StateT s m [a] #

many :: StateT s m a -> StateT s m [a] #

(Functor m, MonadPlus m) => Alternative (StateT s m) 
Instance details

Defined in Control.Monad.Trans.State.Strict

Methods

empty :: StateT s m a #

(<|>) :: StateT s m a -> StateT s m a -> StateT s m a #

some :: StateT s m a -> StateT s m [a] #

many :: StateT s m a -> StateT s m [a] #

(Functor m, MonadPlus m) => Alternative (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.CPS

Methods

empty :: WriterT w m a #

(<|>) :: WriterT w m a -> WriterT w m a -> WriterT w m a #

some :: WriterT w m a -> WriterT w m [a] #

many :: WriterT w m a -> WriterT w m [a] #

(Monoid w, Alternative m) => Alternative (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Lazy

Methods

empty :: WriterT w m a #

(<|>) :: WriterT w m a -> WriterT w m a -> WriterT w m a #

some :: WriterT w m a -> WriterT w m [a] #

many :: WriterT w m a -> WriterT w m [a] #

(Monoid w, Alternative m) => Alternative (WriterT w m) 
Instance details

Defined in Control.Monad.Trans.Writer.Strict

Methods

empty :: WriterT w m a #

(<|>) :: WriterT w m a -> WriterT w m a -> WriterT w m a #

some :: WriterT w m a -> WriterT w m [a] #

many :: WriterT w m a -> WriterT w m [a] #

Alternative f => Alternative (Reverse f)

Derived instance.

Instance details

Defined in Data.Functor.Reverse

Methods

empty :: Reverse f a #

(<|>) :: Reverse f a -> Reverse f a -> Reverse f a #

some :: Reverse f a -> Reverse f [a] #

many :: Reverse f a -> Reverse f [a] #

(Alternative f, Alternative g) => Alternative (Product f g)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Product

Methods

empty :: Product f g a #

(<|>) :: Product f g a -> Product f g a -> Product f g a #

some :: Product f g a -> Product f g [a] #

many :: Product f g a -> Product f g [a] #

(Alternative f, Alternative g) => Alternative (f :*: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: (f :*: g) a #

(<|>) :: (f :*: g) a -> (f :*: g) a -> (f :*: g) a #

some :: (f :*: g) a -> (f :*: g) [a] #

many :: (f :*: g) a -> (f :*: g) [a] #

Alternative (Binocular a b s) Source # 
Instance details

Defined in Control.Lens.Bifocal

Methods

empty :: Binocular a b s a0 #

(<|>) :: Binocular a b s a0 -> Binocular a b s a0 -> Binocular a b s a0 #

some :: Binocular a b s a0 -> Binocular a b s [a0] #

many :: Binocular a b s a0 -> Binocular a b s [a0] #

(Alternative m, Monad m) => Alternative (Parsor s m a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

empty :: Parsor s m a a0 #

(<|>) :: Parsor s m a a0 -> Parsor s m a a0 -> Parsor s m a a0 #

some :: Parsor s m a a0 -> Parsor s m a [a0] #

many :: Parsor s m a a0 -> Parsor s m a [a0] #

Alternative f => Alternative (Printor s f a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

empty :: Printor s f a a0 #

(<|>) :: Printor s f a a0 -> Printor s f a a0 -> Printor s f a a0 #

some :: Printor s f a a0 -> Printor s f a [a0] #

many :: Printor s f a a0 -> Printor s f a [a0] #

(Profunctor p, Alternative (p a), Applicative f) => Alternative (WrappedPafb f p a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

empty :: WrappedPafb f p a a0 #

(<|>) :: WrappedPafb f p a a0 -> WrappedPafb f p a a0 -> WrappedPafb f p a a0 #

some :: WrappedPafb f p a a0 -> WrappedPafb f p a [a0] #

many :: WrappedPafb f p a a0 -> WrappedPafb f p a [a0] #

Alternative f => Alternative (Star f a) 
Instance details

Defined in Data.Profunctor.Types

Methods

empty :: Star f a a0 #

(<|>) :: Star f a a0 -> Star f a a0 -> Star f a a0 #

some :: Star f a a0 -> Star f a [a0] #

many :: Star f a a0 -> Star f a [a0] #

(Alternative f, Applicative g) => Alternative (Compose f g)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Compose

Methods

empty :: Compose f g a #

(<|>) :: Compose f g a -> Compose f g a -> Compose f g a #

some :: Compose f g a -> Compose f g [a] #

many :: Compose f g a -> Compose f g [a] #

(Alternative f, Applicative g) => Alternative (f :.: g)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: (f :.: g) a #

(<|>) :: (f :.: g) a -> (f :.: g) a -> (f :.: g) a #

some :: (f :.: g) a -> (f :.: g) [a] #

many :: (f :.: g) a -> (f :.: g) [a] #

Alternative f => Alternative (M1 i c f)

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Methods

empty :: M1 i c f a #

(<|>) :: M1 i c f a -> M1 i c f a -> M1 i c f a #

some :: M1 i c f a -> M1 i c f [a] #

many :: M1 i c f a -> M1 i c f [a] #

Alternative f => Alternative (Joker f a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

empty :: Joker f a a0 #

(<|>) :: Joker f a a0 -> Joker f a a0 -> Joker f a a0 #

some :: Joker f a a0 -> Joker f a [a0] #

many :: Joker f a a0 -> Joker f a [a0] #

(Functor m, MonadPlus m) => Alternative (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.CPS

Methods

empty :: RWST r w s m a #

(<|>) :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

some :: RWST r w s m a -> RWST r w s m [a] #

many :: RWST r w s m a -> RWST r w s m [a] #

(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Lazy

Methods

empty :: RWST r w s m a #

(<|>) :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

some :: RWST r w s m a -> RWST r w s m [a] #

many :: RWST r w s m a -> RWST r w s m [a] #

(Monoid w, Functor m, MonadPlus m) => Alternative (RWST r w s m) 
Instance details

Defined in Control.Monad.Trans.RWS.Strict

Methods

empty :: RWST r w s m a #

(<|>) :: RWST r w s m a -> RWST r w s m a -> RWST r w s m a #

some :: RWST r w s m a -> RWST r w s m [a] #

many :: RWST r w s m a -> RWST r w s m [a] #

Filterable

class Functor f => Filterable (f :: Type -> Type) where #

Like Functor, but you can remove elements instead of updating them.

Formally, the class Filterable represents a functor from Kleisli Maybe to Hask.

A definition of mapMaybe must satisfy the following laws:

conservation
mapMaybe (Just . f) ≡ fmap f
composition
mapMaybe f . mapMaybe g ≡ mapMaybe (f <=< g)

Minimal complete definition

mapMaybe | catMaybes

Methods

mapMaybe :: (a -> Maybe b) -> f a -> f b #

Like mapMaybe.

catMaybes :: f (Maybe a) -> f a #

filter :: (a -> Bool) -> f a -> f a #

filter f . filter g ≡ filter (liftA2 (&&) g f)

drain :: f a -> f b #

Empty a filterable.

drainmapMaybe (const Nothing)

Instances

Instances details
Filterable ZipList 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> ZipList a -> ZipList b #

catMaybes :: ZipList (Maybe a) -> ZipList a #

filter :: (a -> Bool) -> ZipList a -> ZipList a #

drain :: ZipList a -> ZipList b #

Filterable ReadP Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a -> Maybe b) -> ReadP a -> ReadP b #

catMaybes :: ReadP (Maybe a) -> ReadP a #

filter :: (a -> Bool) -> ReadP a -> ReadP a #

drain :: ReadP a -> ReadP b #

Filterable IntMap 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> IntMap a -> IntMap b #

catMaybes :: IntMap (Maybe a) -> IntMap a #

filter :: (a -> Bool) -> IntMap a -> IntMap a #

drain :: IntMap a -> IntMap b #

Filterable Seq 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Seq a -> Seq b #

catMaybes :: Seq (Maybe a) -> Seq a #

filter :: (a -> Bool) -> Seq a -> Seq a #

drain :: Seq a -> Seq b #

Filterable Vector 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Vector a -> Vector b #

catMaybes :: Vector (Maybe a) -> Vector a #

filter :: (a -> Bool) -> Vector a -> Vector a #

drain :: Vector a -> Vector b #

Filterable Maybe 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Maybe a -> Maybe b #

catMaybes :: Maybe (Maybe a) -> Maybe a #

filter :: (a -> Bool) -> Maybe a -> Maybe a #

drain :: Maybe a -> Maybe b #

Filterable [] 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> [a] -> [b] #

catMaybes :: [Maybe a] -> [a] #

filter :: (a -> Bool) -> [a] -> [a] #

drain :: [a] -> [b] #

Monoid e => Filterable (Either e) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Either e a -> Either e b #

catMaybes :: Either e (Maybe a) -> Either e a #

filter :: (a -> Bool) -> Either e a -> Either e a #

drain :: Either e a -> Either e b #

Filterable (Proxy :: Type -> Type) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Proxy a -> Proxy b #

catMaybes :: Proxy (Maybe a) -> Proxy a #

filter :: (a -> Bool) -> Proxy a -> Proxy a #

drain :: Proxy a -> Proxy b #

Filterable (U1 :: Type -> Type) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> U1 a -> U1 b #

catMaybes :: U1 (Maybe a) -> U1 a #

filter :: (a -> Bool) -> U1 a -> U1 a #

drain :: U1 a -> U1 b #

Filterable (V1 :: Type -> Type) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> V1 a -> V1 b #

catMaybes :: V1 (Maybe a) -> V1 a #

filter :: (a -> Bool) -> V1 a -> V1 a #

drain :: V1 a -> V1 b #

Filterable (Map k) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Map k a -> Map k b #

catMaybes :: Map k (Maybe a) -> Map k a #

filter :: (a -> Bool) -> Map k a -> Map k a #

drain :: Map k a -> Map k b #

Functor f => Filterable (MaybeT f) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> MaybeT f a -> MaybeT f b #

catMaybes :: MaybeT f (Maybe a) -> MaybeT f a #

filter :: (a -> Bool) -> MaybeT f a -> MaybeT f a #

drain :: MaybeT f a -> MaybeT f b #

(Eq k, Hashable k) => Filterable (HashMap k) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> HashMap k a -> HashMap k b #

catMaybes :: HashMap k (Maybe a) -> HashMap k a #

filter :: (a -> Bool) -> HashMap k a -> HashMap k a #

drain :: HashMap k a -> HashMap k b #

(Foldable f, Alternative f) => Filterable (WrappedFoldable f) 
Instance details

Defined in Witherable

Filterable (Const r :: Type -> Type) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Const r a -> Const r b #

catMaybes :: Const r (Maybe a) -> Const r a #

filter :: (a -> Bool) -> Const r a -> Const r a #

drain :: Const r a -> Const r b #

Filterable f => Filterable (Rec1 f) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Rec1 f a -> Rec1 f b #

catMaybes :: Rec1 f (Maybe a) -> Rec1 f a #

filter :: (a -> Bool) -> Rec1 f a -> Rec1 f a #

drain :: Rec1 f a -> Rec1 f b #

Categorized (Item s) => Filterable (Parsector s a) Source # 
Instance details

Defined in Data.Profunctor.Grammar.Parsector

Methods

mapMaybe :: (a0 -> Maybe b) -> Parsector s a a0 -> Parsector s a b #

catMaybes :: Parsector s a (Maybe a0) -> Parsector s a a0 #

filter :: (a0 -> Bool) -> Parsector s a a0 -> Parsector s a a0 #

drain :: Parsector s a a0 -> Parsector s a b #

(Profunctor p, Filterable (p a)) => Filterable (Coyoneda p a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a0 -> Maybe b) -> Coyoneda p a a0 -> Coyoneda p a b #

catMaybes :: Coyoneda p a (Maybe a0) -> Coyoneda p a a0 #

filter :: (a0 -> Bool) -> Coyoneda p a a0 -> Coyoneda p a a0 #

drain :: Coyoneda p a a0 -> Coyoneda p a b #

(Profunctor p, Filterable (p a)) => Filterable (Yoneda p a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a0 -> Maybe b) -> Yoneda p a a0 -> Yoneda p a b #

catMaybes :: Yoneda p a (Maybe a0) -> Yoneda p a a0 #

filter :: (a0 -> Bool) -> Yoneda p a a0 -> Yoneda p a a0 #

drain :: Yoneda p a a0 -> Yoneda p a b #

Filterable t => Filterable (Backwards t) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Backwards t a -> Backwards t b #

catMaybes :: Backwards t (Maybe a) -> Backwards t a #

filter :: (a -> Bool) -> Backwards t a -> Backwards t a #

drain :: Backwards t a -> Backwards t b #

Filterable f => Filterable (IdentityT f) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> IdentityT f a -> IdentityT f b #

catMaybes :: IdentityT f (Maybe a) -> IdentityT f a #

filter :: (a -> Bool) -> IdentityT f a -> IdentityT f a #

drain :: IdentityT f a -> IdentityT f b #

Filterable t => Filterable (Reverse t) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Reverse t a -> Reverse t b #

catMaybes :: Reverse t (Maybe a) -> Reverse t a #

filter :: (a -> Bool) -> Reverse t a -> Reverse t a #

drain :: Reverse t a -> Reverse t b #

(Filterable f, Filterable g) => Filterable (Product f g) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Product f g a -> Product f g b #

catMaybes :: Product f g (Maybe a) -> Product f g a #

filter :: (a -> Bool) -> Product f g a -> Product f g a #

drain :: Product f g a -> Product f g b #

(Filterable f, Filterable g) => Filterable (Sum f g) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Sum f g a -> Sum f g b #

catMaybes :: Sum f g (Maybe a) -> Sum f g a #

filter :: (a -> Bool) -> Sum f g a -> Sum f g a #

drain :: Sum f g a -> Sum f g b #

(Filterable f, Filterable g) => Filterable (f :*: g) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> (f :*: g) a -> (f :*: g) b #

catMaybes :: (f :*: g) (Maybe a) -> (f :*: g) a #

filter :: (a -> Bool) -> (f :*: g) a -> (f :*: g) a #

drain :: (f :*: g) a -> (f :*: g) b #

(Filterable f, Filterable g) => Filterable (f :+: g) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> (f :+: g) a -> (f :+: g) b #

catMaybes :: (f :+: g) (Maybe a) -> (f :+: g) a #

filter :: (a -> Bool) -> (f :+: g) a -> (f :+: g) a #

drain :: (f :+: g) a -> (f :+: g) b #

Filterable (K1 i c :: Type -> Type) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> K1 i c a -> K1 i c b #

catMaybes :: K1 i c (Maybe a) -> K1 i c a #

filter :: (a -> Bool) -> K1 i c a -> K1 i c a #

drain :: K1 i c a -> K1 i c b #

Filterable (Binocular a b s) Source # 
Instance details

Defined in Control.Lens.Bifocal

Methods

mapMaybe :: (a0 -> Maybe b0) -> Binocular a b s a0 -> Binocular a b s b0 #

catMaybes :: Binocular a b s (Maybe a0) -> Binocular a b s a0 #

filter :: (a0 -> Bool) -> Binocular a b s a0 -> Binocular a b s a0 #

drain :: Binocular a b s a0 -> Binocular a b s b0 #

Filterable (PartialExchange a b s) Source # 
Instance details

Defined in Control.Lens.PartialIso

Methods

mapMaybe :: (a0 -> Maybe b0) -> PartialExchange a b s a0 -> PartialExchange a b s b0 #

catMaybes :: PartialExchange a b s (Maybe a0) -> PartialExchange a b s a0 #

filter :: (a0 -> Bool) -> PartialExchange a b s a0 -> PartialExchange a b s a0 #

drain :: PartialExchange a b s a0 -> PartialExchange a b s b0 #

Filterable f => Filterable (Parsor s f a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

mapMaybe :: (a0 -> Maybe b) -> Parsor s f a a0 -> Parsor s f a b #

catMaybes :: Parsor s f a (Maybe a0) -> Parsor s f a a0 #

filter :: (a0 -> Bool) -> Parsor s f a a0 -> Parsor s f a a0 #

drain :: Parsor s f a a0 -> Parsor s f a b #

Filterable f => Filterable (Printor s f a) Source # 
Instance details

Defined in Data.Profunctor.Grammar

Methods

mapMaybe :: (a0 -> Maybe b) -> Printor s f a a0 -> Printor s f a b #

catMaybes :: Printor s f a (Maybe a0) -> Printor s f a a0 #

filter :: (a0 -> Bool) -> Printor s f a a0 -> Printor s f a a0 #

drain :: Printor s f a a0 -> Printor s f a b #

(Profunctor p, Functor (p a), Filterable f) => Filterable (WrappedPafb f p a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a0 -> Maybe b) -> WrappedPafb f p a a0 -> WrappedPafb f p a b #

catMaybes :: WrappedPafb f p a (Maybe a0) -> WrappedPafb f p a a0 #

filter :: (a0 -> Bool) -> WrappedPafb f p a a0 -> WrappedPafb f p a a0 #

drain :: WrappedPafb f p a a0 -> WrappedPafb f p a b #

Filterable (Forget r a :: Type -> Type) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a0 -> Maybe b) -> Forget r a a0 -> Forget r a b #

catMaybes :: Forget r a (Maybe a0) -> Forget r a a0 #

filter :: (a0 -> Bool) -> Forget r a a0 -> Forget r a a0 #

drain :: Forget r a a0 -> Forget r a b #

Filterable f => Filterable (Star f a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a0 -> Maybe b) -> Star f a a0 -> Star f a b #

catMaybes :: Star f a (Maybe a0) -> Star f a a0 #

filter :: (a0 -> Bool) -> Star f a a0 -> Star f a a0 #

drain :: Star f a a0 -> Star f a b #

(Functor f, Filterable g) => Filterable (Compose f g) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> Compose f g a -> Compose f g b #

catMaybes :: Compose f g (Maybe a) -> Compose f g a #

filter :: (a -> Bool) -> Compose f g a -> Compose f g a #

drain :: Compose f g a -> Compose f g b #

(Functor f, Filterable g) => Filterable (f :.: g) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> (f :.: g) a -> (f :.: g) b #

catMaybes :: (f :.: g) (Maybe a) -> (f :.: g) a #

filter :: (a -> Bool) -> (f :.: g) a -> (f :.: g) a #

drain :: (f :.: g) a -> (f :.: g) b #

Filterable f => Filterable (M1 i c f) 
Instance details

Defined in Witherable

Methods

mapMaybe :: (a -> Maybe b) -> M1 i c f a -> M1 i c f b #

catMaybes :: M1 i c f (Maybe a) -> M1 i c f a #

filter :: (a -> Bool) -> M1 i c f a -> M1 i c f a #

drain :: M1 i c f a -> M1 i c f b #

Filterable f => Filterable (Joker f a) Source # 
Instance details

Defined in Control.Lens.Grammar.Internal.Orphanage

Methods

mapMaybe :: (a0 -> Maybe b) -> Joker f a a0 -> Joker f a b #

catMaybes :: Joker f a (Maybe a0) -> Joker f a a0 #

filter :: (a0 -> Bool) -> Joker f a a0 -> Joker f a a0 #

drain :: Joker f a a0 -> Joker f a b #