module Applicative
(
Applicative(..)
, between
, filterM
, forever
, liftA3
, replicateM
, replicateM_
, unless
, when
, zipWithM
, zipWithM_
, Alternative((<|>), empty, many)
, endBy
, endBy1
, guard
, manyTill
, optional
, sepBy
, sepEndBy
, sepBy1
, sepEndBy1
, skipMany
, skipManyTill
, skipSome
, skipSomeTill
, some1
, someTill
, Alt(..)
, Ap(..)
, runAp
, runAp_
, liftAp
, iterAp
, hoistAp
, retractAp
) where
import Control.Applicative (Alternative(empty, many, (<|>)),
Applicative(liftA2, pure, (*>), (<*), (<*>), (<*>)),
liftA3)
import Control.Applicative.Combinators (between, endBy, manyTill,
sepBy, sepEndBy, skipMany,
skipManyTill, skipSome,
skipSomeTill)
import Control.Applicative.Combinators.NonEmpty (endBy1, sepBy1, sepEndBy1,
someTill)
import Control.Applicative.Free (Ap(Ap, Pure), hoistAp, iterAp,
liftAp, retractAp, runAp,
runAp_)
import Control.Monad (filterM, forever, guard,
replicateM, replicateM_,
unless, when, zipWithM,
zipWithM_)
import Data.Functor.Alt (optional)
import Data.List.NonEmpty (some1)
import Data.Monoid (Alt(Alt, getAlt))