| Copyright | (c) Justin Le 2019 | 
|---|---|
| License | BSD3 | 
| Maintainer | justin@jle.im | 
| Stability | experimental | 
| Portability | non-portable | 
| Safe Haskell | Safe-Inferred | 
| Language | Haskell2010 | 
Control.Applicative.Step
Contents
Description
Synopsis
- data Step f a = Step {}
- newtype Steps f a = Steps {}
- data Flagged f a = Flagged {- flaggedFlag :: Bool
- flaggedVal :: f a
 
- stepUp :: (f :+: Step f) ~> Step f
- stepDown :: Step f ~> (f :+: Step f)
- stepping :: Step f <~> (f :+: Step f)
- stepsUp :: These1 f (Steps f) ~> Steps f
- stepsDown :: Steps f ~> These1 f (Steps f)
- steppings :: Steps f <~> These1 f (Steps f)
- absurd1 :: V1 a -> f a
- data Void2 a b
- absurd2 :: Void2 f a -> t f a
- data Void3 a b c
- absurd3 :: Void3 f g a -> t f g a
Fixed Points
An f a, along with a Natural index.
Stepf a ~ (Natural, f a) Step f ~ ((,) Natural):.:f -- functor composition
It is the fixed point of infinite applications of :+: (functor sums).
Intuitively, in an infinite f :+: f :+: f :+: f ..., you have
 exactly one f somewhere.  A Step f af, with
 a Natural giving you "where" the f is in the long chain.
Can be useful for using with the Monoidal
 instance of :+:.
interpreting it requires no constraint on the
 target context.
Note that this type and its instances equivalent to
 EnvT (Sum Natural)
Instances
| HTraversable (Step :: (k1 -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HTraversable1 (Step :: (k1 -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HFunctor (Step :: (k -> Type) -> k -> Type) Source # | |
| HBind (Step :: (k -> Type) -> k -> Type) Source # | |
| Inject (Step :: (k -> Type) -> k -> Type) Source # | Injects with 0. | 
| Interpret (Step :: (k -> Type) -> k -> Type) (f :: k -> Type) Source # | |
| Foldable f => Foldable (Step f) Source # | |
| Defined in Control.Applicative.Step Methods fold :: Monoid m => Step f m -> m # foldMap :: Monoid m => (a -> m) -> Step f a -> m # foldMap' :: Monoid m => (a -> m) -> Step f a -> m # foldr :: (a -> b -> b) -> b -> Step f a -> b # foldr' :: (a -> b -> b) -> b -> Step f a -> b # foldl :: (b -> a -> b) -> b -> Step f a -> b # foldl' :: (b -> a -> b) -> b -> Step f a -> b # foldr1 :: (a -> a -> a) -> Step f a -> a # foldl1 :: (a -> a -> a) -> Step f a -> a # elem :: Eq a => a -> Step f a -> Bool # maximum :: Ord a => Step f a -> a # minimum :: Ord a => Step f a -> a # | |
| Foldable1 f => Foldable1 (Step f) Source # | |
| Defined in Control.Applicative.Step Methods fold1 :: Semigroup m => Step f m -> m # foldMap1 :: Semigroup m => (a -> m) -> Step f a -> m # foldMap1' :: Semigroup m => (a -> m) -> Step f a -> m # toNonEmpty :: Step f a -> NonEmpty a # maximum :: Ord a => Step f a -> a # minimum :: Ord a => Step f a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Step f a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Step f a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Step f a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Step f a -> b # | |
| Eq1 f => Eq1 (Step f) Source # | |
| Ord1 f => Ord1 (Step f) Source # | |
| Defined in Control.Applicative.Step | |
| Read1 f => Read1 (Step f) Source # | |
| Defined in Control.Applicative.Step | |
| Show1 f => Show1 (Step f) Source # | |
| Contravariant f => Contravariant (Step f) Source # | Since: 0.3.0.0 | 
| Traversable f => Traversable (Step f) Source # | |
| Applicative f => Applicative (Step f) Source # | |
| Functor f => Functor (Step f) Source # | |
| Decidable f => Decidable (Step f) Source # | Since: 0.3.0.0 | 
| Divisible f => Divisible (Step f) Source # | Since: 0.3.0.0 | 
| Conclude f => Conclude (Step f) Source # | Since: 0.3.0.0 | 
| Decide f => Decide (Step f) Source # | Since: 0.3.0.0 | 
| Divise f => Divise (Step f) Source # | Since: 0.3.0.0 | 
| Invariant f => Invariant (Step f) Source # | Since: 0.3.0.0 | 
| Defined in Control.Applicative.Step | |
| Pointed f => Pointed (Step f) Source # | |
| Defined in Control.Applicative.Step | |
| Apply f => Apply (Step f) Source # | Since: 0.3.0.0 | 
| Traversable1 f => Traversable1 (Step f) Source # | |
| (Typeable a, Typeable f, Typeable k, Data (f a)) => Data (Step f a) Source # | |
| Defined in Control.Applicative.Step Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Step f a -> c (Step f a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Step f a) # toConstr :: Step f a -> Constr # dataTypeOf :: Step f a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Step f a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Step f a)) # gmapT :: (forall b. Data b => b -> b) -> Step f a -> Step f a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Step f a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Step f a -> r # gmapQ :: (forall d. Data d => d -> u) -> Step f a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Step f a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Step f a -> m (Step f a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Step f a -> m (Step f a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Step f a -> m (Step f a) # | |
| Generic (Step f a) Source # | |
| Read (f a) => Read (Step f a) Source # | |
| Show (f a) => Show (Step f a) Source # | |
| Eq (f a) => Eq (Step f a) Source # | |
| Ord (f a) => Ord (Step f a) Source # | |
| Defined in Control.Applicative.Step | |
| type Rep (Step f a) Source # | |
| Defined in Control.Applicative.Step type Rep (Step f a) = D1 ('MetaData "Step" "Control.Applicative.Step" "functor-combinators-0.4.1.3-6AGvZMQUvOOEyTeopopf92" 'False) (C1 ('MetaCons "Step" 'PrefixI 'True) (S1 ('MetaSel ('Just "stepPos") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Natural) :*: S1 ('MetaSel ('Just "stepVal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)))) | |
A non-empty map of Natural to f a.  Basically, contains multiple
 f as, each at a given Natural index.
Steps f a ~MapNatural(f a) Steps f ~MapNatural:.:f -- functor composition
It is the fixed point of applications of TheseT.
You can think of this as an infinite sparse array of f as.
Intuitively, in an infinite f `TheseT` f `TheseT` f `TheseT` f ...,
 each of those infinite positions may have an f in them.  However,
 because of the at-least-one nature of TheseT, we know we have at least
 one f at one position somewhere.
A Steps f afs, each stored at a different
 Natural position, with the guaruntee that at least one f exists.
Can be useful for using with the Monoidal instance
 of TheseT.
interpreting it requires at least an Alt
 instance in the target context, since we have to handle potentially more
 than one f.
This type is essentailly the same as NEMapF
 (Sum Natural)Semigroup instance).
Instances
| HTraversable (Steps :: (k1 -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HTraversable1 (Steps :: (k1 -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HFunctor (Steps :: (k -> Type) -> k -> Type) Source # | |
| Inject (Steps :: (k -> Type) -> k -> Type) Source # | Injects into a singleton map at 0; same behavior as  | 
| Alt f => Interpret (Steps :: (Type -> Type) -> Type -> Type) (f :: Type -> Type) Source # | |
| Foldable f => Foldable (Steps f) Source # | |
| Defined in Control.Applicative.Step Methods fold :: Monoid m => Steps f m -> m # foldMap :: Monoid m => (a -> m) -> Steps f a -> m # foldMap' :: Monoid m => (a -> m) -> Steps f a -> m # foldr :: (a -> b -> b) -> b -> Steps f a -> b # foldr' :: (a -> b -> b) -> b -> Steps f a -> b # foldl :: (b -> a -> b) -> b -> Steps f a -> b # foldl' :: (b -> a -> b) -> b -> Steps f a -> b # foldr1 :: (a -> a -> a) -> Steps f a -> a # foldl1 :: (a -> a -> a) -> Steps f a -> a # elem :: Eq a => a -> Steps f a -> Bool # maximum :: Ord a => Steps f a -> a # minimum :: Ord a => Steps f a -> a # | |
| Foldable1 f => Foldable1 (Steps f) Source # | |
| Defined in Control.Applicative.Step Methods fold1 :: Semigroup m => Steps f m -> m # foldMap1 :: Semigroup m => (a -> m) -> Steps f a -> m # foldMap1' :: Semigroup m => (a -> m) -> Steps f a -> m # toNonEmpty :: Steps f a -> NonEmpty a # maximum :: Ord a => Steps f a -> a # minimum :: Ord a => Steps f a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Steps f a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Steps f a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Steps f a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Steps f a -> b # | |
| Eq1 f => Eq1 (Steps f) Source # | |
| Ord1 f => Ord1 (Steps f) Source # | |
| Defined in Control.Applicative.Step | |
| Read1 f => Read1 (Steps f) Source # | |
| Defined in Control.Applicative.Step | |
| Show1 f => Show1 (Steps f) Source # | |
| Contravariant f => Contravariant (Steps f) Source # | Since: 0.3.0.0 | 
| Traversable f => Traversable (Steps f) Source # | |
| Functor f => Functor (Steps f) Source # | |
| Invariant f => Invariant (Steps f) Source # | Since: 0.3.0.0 | 
| Defined in Control.Applicative.Step | |
| Pointed f => Pointed (Steps f) Source # | |
| Defined in Control.Applicative.Step | |
| Functor f => Alt (Steps f) Source # | Left-biased untion | 
| Traversable1 f => Traversable1 (Steps f) Source # | |
| (Typeable a, Typeable f, Typeable k, Data (f a)) => Data (Steps f a) Source # | |
| Defined in Control.Applicative.Step Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Steps f a -> c (Steps f a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Steps f a) # toConstr :: Steps f a -> Constr # dataTypeOf :: Steps f a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Steps f a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Steps f a)) # gmapT :: (forall b. Data b => b -> b) -> Steps f a -> Steps f a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Steps f a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Steps f a -> r # gmapQ :: (forall d. Data d => d -> u) -> Steps f a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Steps f a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Steps f a -> m (Steps f a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Steps f a -> m (Steps f a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Steps f a -> m (Steps f a) # | |
| Semigroup (Steps f a) Source # | Appends the items back-to-back, shifting all of the items in the
 second map.  Matches the behavior as the fixed-point of  | 
| Generic (Steps f a) Source # | |
| Read (f a) => Read (Steps f a) Source # | |
| Show (f a) => Show (Steps f a) Source # | |
| Eq (f a) => Eq (Steps f a) Source # | |
| Ord (f a) => Ord (Steps f a) Source # | |
| type Rep (Steps f a) Source # | |
| Defined in Control.Applicative.Step | |
An f a, along with a Bool flag
Flaggedf a ~ (Bool, f a) Flagged f ~ ((,) Bool):.:f -- functor composition
Creation with inject or pure uses False as the
 boolean.
You can think of it as an f a that is "flagged" with a boolean value,
 and that value can indicuate whether or not it is "pure" (made with
 inject or pure) as False, or "impure"
 (made from some other source) as True.  However, False may be always
 created directly, of course, using the constructor.
You can think of it like a Step that is either 0 or 1, as well.
interpreting it requires no constraint on the
 target context.
This type is equivalent (along with its instances) to:
Constructors
| Flagged | |
| Fields 
 | |
Instances
| HTraversable (Flagged :: (k1 -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HTraversable1 (Flagged :: (k1 -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HFunctor (Flagged :: (k -> Type) -> k -> Type) Source # | |
| HBind (Flagged :: (k -> Type) -> k -> Type) Source # | |
| Inject (Flagged :: (k -> Type) -> k -> Type) Source # | Injects with  | 
| Interpret (Flagged :: (k -> Type) -> k -> Type) (f :: k -> Type) Source # | |
| Foldable f => Foldable (Flagged f) Source # | |
| Defined in Control.Applicative.Step Methods fold :: Monoid m => Flagged f m -> m # foldMap :: Monoid m => (a -> m) -> Flagged f a -> m # foldMap' :: Monoid m => (a -> m) -> Flagged f a -> m # foldr :: (a -> b -> b) -> b -> Flagged f a -> b # foldr' :: (a -> b -> b) -> b -> Flagged f a -> b # foldl :: (b -> a -> b) -> b -> Flagged f a -> b # foldl' :: (b -> a -> b) -> b -> Flagged f a -> b # foldr1 :: (a -> a -> a) -> Flagged f a -> a # foldl1 :: (a -> a -> a) -> Flagged f a -> a # toList :: Flagged f a -> [a] # length :: Flagged f a -> Int # elem :: Eq a => a -> Flagged f a -> Bool # maximum :: Ord a => Flagged f a -> a # minimum :: Ord a => Flagged f a -> a # | |
| Foldable1 f => Foldable1 (Flagged f) Source # | |
| Defined in Control.Applicative.Step Methods fold1 :: Semigroup m => Flagged f m -> m # foldMap1 :: Semigroup m => (a -> m) -> Flagged f a -> m # foldMap1' :: Semigroup m => (a -> m) -> Flagged f a -> m # toNonEmpty :: Flagged f a -> NonEmpty a # maximum :: Ord a => Flagged f a -> a # minimum :: Ord a => Flagged f a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Flagged f a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Flagged f a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Flagged f a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Flagged f a -> b # | |
| Eq1 f => Eq1 (Flagged f) Source # | |
| Ord1 f => Ord1 (Flagged f) Source # | |
| Defined in Control.Applicative.Step | |
| Read1 f => Read1 (Flagged f) Source # | |
| Defined in Control.Applicative.Step | |
| Show1 f => Show1 (Flagged f) Source # | |
| Traversable f => Traversable (Flagged f) Source # | |
| Defined in Control.Applicative.Step | |
| Applicative f => Applicative (Flagged f) Source # | |
| Defined in Control.Applicative.Step | |
| Functor f => Functor (Flagged f) Source # | |
| Pointed f => Pointed (Flagged f) Source # | |
| Defined in Control.Applicative.Step | |
| Traversable1 f => Traversable1 (Flagged f) Source # | |
| (Typeable a, Typeable f, Typeable k, Data (f a)) => Data (Flagged f a) Source # | |
| Defined in Control.Applicative.Step Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Flagged f a -> c (Flagged f a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Flagged f a) # toConstr :: Flagged f a -> Constr # dataTypeOf :: Flagged f a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Flagged f a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Flagged f a)) # gmapT :: (forall b. Data b => b -> b) -> Flagged f a -> Flagged f a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Flagged f a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Flagged f a -> r # gmapQ :: (forall d. Data d => d -> u) -> Flagged f a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Flagged f a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Flagged f a -> m (Flagged f a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Flagged f a -> m (Flagged f a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Flagged f a -> m (Flagged f a) # | |
| Generic (Flagged f a) Source # | |
| Read (f a) => Read (Flagged f a) Source # | |
| Show (f a) => Show (Flagged f a) Source # | |
| Eq (f a) => Eq (Flagged f a) Source # | |
| Ord (f a) => Ord (Flagged f a) Source # | |
| Defined in Control.Applicative.Step | |
| type Rep (Flagged f a) Source # | |
| Defined in Control.Applicative.Step type Rep (Flagged f a) = D1 ('MetaData "Flagged" "Control.Applicative.Step" "functor-combinators-0.4.1.3-6AGvZMQUvOOEyTeopopf92" 'False) (C1 ('MetaCons "Flagged" 'PrefixI 'True) (S1 ('MetaSel ('Just "flaggedFlag") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "flaggedVal") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)))) | |
Steppers
stepUp :: (f :+: Step f) ~> Step f Source #
Unshift an item into a Step.  Because a Step ff :+: f :+:
 f :+: f :+: ... forever, this basically conses an additional
 possibility of f to the beginning of it all.
You can think of it as reassociating
f :+: ( f :+: f :+: f :+: ...)
into
f :+: f :+: f :+: f :+: ...
stepUp(L1"hello") --Step0 "hello" stepUp (R1(Step 1 "hello")) -- Step 2 "hello"
stepDown :: Step f ~> (f :+: Step f) Source #
Pop off the first item in a Step.  Because a Step ff :+:
 f :+: f :+: ... forever, this matches on the first branch.
You can think of it as reassociating
f :+: f :+: f :+: f :+: ...
into
f :+: ( f :+: f :+: f :+: ...)
stepDown(Step2 "hello") --R1(Step 1 "hello") stepDown (Step 0 "hello") --L1"hello"
stepsUp :: These1 f (Steps f) ~> Steps f Source #
Unshift an item into a Steps.  Because a Steps ff  forever, this basically conses an
 additional possibility of These1
 f These1 f These1 f These1 ...f to the beginning of it all.
You can think of it as reassociating
fThese1( fThese1fThese1fThese1...)
into
fThese1fThese1fThese1fThese1...
If you give:
stepsDown :: Steps f ~> These1 f (Steps f) Source #
Pop off the first item in a Steps.  Because a Steps ff
  forever, this matches on the first branch.These1 f These1 f These1 ...
You can think of it as reassociating
fThese1fThese1fThese1fThese1...
into
fThese1( fThese1fThese1fThese1...)
It returns:
Void
absurd1 :: V1 a -> f a Source #
We have a natural transformation between V1 and any other
 functor f with no constraints.
Void2 a ba and b.
Instances
| HTraversable (Void2 :: (k -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HTraversable1 (Void2 :: (k -> Type) -> k1 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HFunctor (Void2 :: (k1 -> Type) -> k2 -> Type) Source # | |
| Foldable (Void2 a :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step Methods fold :: Monoid m => Void2 a m -> m # foldMap :: Monoid m => (a0 -> m) -> Void2 a a0 -> m # foldMap' :: Monoid m => (a0 -> m) -> Void2 a a0 -> m # foldr :: (a0 -> b -> b) -> b -> Void2 a a0 -> b # foldr' :: (a0 -> b -> b) -> b -> Void2 a a0 -> b # foldl :: (b -> a0 -> b) -> b -> Void2 a a0 -> b # foldl' :: (b -> a0 -> b) -> b -> Void2 a a0 -> b # foldr1 :: (a0 -> a0 -> a0) -> Void2 a a0 -> a0 # foldl1 :: (a0 -> a0 -> a0) -> Void2 a a0 -> a0 # toList :: Void2 a a0 -> [a0] # elem :: Eq a0 => a0 -> Void2 a a0 -> Bool # maximum :: Ord a0 => Void2 a a0 -> a0 # minimum :: Ord a0 => Void2 a a0 -> a0 # | |
| Eq1 (Void2 a :: Type -> Type) Source # | |
| Ord1 (Void2 a :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step | |
| Read1 (Void2 a :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step Methods liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Void2 a a0) # liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Void2 a a0] # liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Void2 a a0) # liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Void2 a a0] # | |
| Show1 (Void2 a :: Type -> Type) Source # | |
| Contravariant (Void2 a :: Type -> Type) Source # | Since: 0.3.0.0 | 
| Traversable (Void2 a :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step | |
| Functor (Void2 a :: Type -> Type) Source # | |
| Invariant (Void2 a :: Type -> Type) Source # | Since: 0.3.0.0 | 
| Defined in Control.Applicative.Step | |
| Alt (Void2 a :: Type -> Type) Source # | |
| Apply (Void2 a :: Type -> Type) Source # | |
| Bind (Void2 a :: Type -> Type) Source # | |
| (Typeable a, Typeable b, Typeable k1, Typeable k2) => Data (Void2 a b) Source # | |
| Defined in Control.Applicative.Step Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Void2 a b -> c (Void2 a b) # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Void2 a b) # toConstr :: Void2 a b -> Constr # dataTypeOf :: Void2 a b -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Void2 a b)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Void2 a b)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Void2 a b -> Void2 a b # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Void2 a b -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Void2 a b -> r # gmapQ :: (forall d. Data d => d -> u) -> Void2 a b -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Void2 a b -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Void2 a b -> m (Void2 a b) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Void2 a b -> m (Void2 a b) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Void2 a b -> m (Void2 a b) # | |
| Semigroup (Void2 a b) Source # | |
| Generic (Void2 a b) Source # | |
| Read (Void2 a b) Source # | |
| Show (Void2 a b) Source # | |
| Eq (Void2 a b) Source # | |
| Ord (Void2 a b) Source # | |
| type Rep (Void2 a b) Source # | |
Void3 a ba and b.
Instances
| HTraversable (Void3 f :: (k2 -> Type) -> k3 -> Type) Source # | |
| Defined in Data.HFunctor.HTraversable | |
| HFunctor (Void3 f :: (k2 -> Type) -> k3 -> Type) Source # | |
| HBifunctor (Void3 :: (k -> Type) -> (k -> Type) -> k -> Type) Source # | |
| Defined in Data.HFunctor.Internal Methods hleft :: forall (f :: k0 -> Type) (j :: k0 -> Type) (g :: k0 -> Type). (f ~> j) -> Void3 f g ~> Void3 j g Source # hright :: forall (g :: k0 -> Type) (l :: k0 -> Type) (f :: k0 -> Type). (g ~> l) -> Void3 f g ~> Void3 f l Source # hbimap :: forall (f :: k0 -> Type) (j :: k0 -> Type) (g :: k0 -> Type) (l :: k0 -> Type). (f ~> j) -> (g ~> l) -> Void3 f g ~> Void3 j l Source # | |
| Associative (Void3 :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # | |
| Defined in Data.HBifunctor.Associative Associated Types type NonEmptyBy Void3 :: (Type -> Type) -> Type -> Type Source # type FunctorBy Void3 :: (Type -> Type) -> Constraint Source # Methods associating :: forall (f :: Type -> Type) (g :: Type -> Type) (h :: Type -> Type). (FunctorBy Void3 f, FunctorBy Void3 g, FunctorBy Void3 h) => Void3 f (Void3 g h) <~> Void3 (Void3 f g) h Source # appendNE :: forall (f :: Type -> Type). Void3 (NonEmptyBy Void3 f) (NonEmptyBy Void3 f) ~> NonEmptyBy Void3 f Source # matchNE :: forall (f :: Type -> Type). FunctorBy Void3 f => NonEmptyBy Void3 f ~> (f :+: Void3 f (NonEmptyBy Void3 f)) Source # consNE :: forall (f :: Type -> Type). Void3 f (NonEmptyBy Void3 f) ~> NonEmptyBy Void3 f Source # toNonEmptyBy :: forall (f :: Type -> Type). Void3 f f ~> NonEmptyBy Void3 f Source # | |
| SemigroupIn (Void3 :: (Type -> Type) -> (Type -> Type) -> Type -> Type) f Source # | All functors are semigroups in the semigroupoidal category on  | 
| Foldable (Void3 a b :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step Methods fold :: Monoid m => Void3 a b m -> m # foldMap :: Monoid m => (a0 -> m) -> Void3 a b a0 -> m # foldMap' :: Monoid m => (a0 -> m) -> Void3 a b a0 -> m # foldr :: (a0 -> b0 -> b0) -> b0 -> Void3 a b a0 -> b0 # foldr' :: (a0 -> b0 -> b0) -> b0 -> Void3 a b a0 -> b0 # foldl :: (b0 -> a0 -> b0) -> b0 -> Void3 a b a0 -> b0 # foldl' :: (b0 -> a0 -> b0) -> b0 -> Void3 a b a0 -> b0 # foldr1 :: (a0 -> a0 -> a0) -> Void3 a b a0 -> a0 # foldl1 :: (a0 -> a0 -> a0) -> Void3 a b a0 -> a0 # toList :: Void3 a b a0 -> [a0] # null :: Void3 a b a0 -> Bool # length :: Void3 a b a0 -> Int # elem :: Eq a0 => a0 -> Void3 a b a0 -> Bool # maximum :: Ord a0 => Void3 a b a0 -> a0 # minimum :: Ord a0 => Void3 a b a0 -> a0 # | |
| Eq1 (Void3 a b :: Type -> Type) Source # | |
| Ord1 (Void3 a b :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step | |
| Read1 (Void3 a b :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step Methods liftReadsPrec :: (Int -> ReadS a0) -> ReadS [a0] -> Int -> ReadS (Void3 a b a0) # liftReadList :: (Int -> ReadS a0) -> ReadS [a0] -> ReadS [Void3 a b a0] # liftReadPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec (Void3 a b a0) # liftReadListPrec :: ReadPrec a0 -> ReadPrec [a0] -> ReadPrec [Void3 a b a0] # | |
| Show1 (Void3 a b :: Type -> Type) Source # | |
| Contravariant (Void3 a b :: Type -> Type) Source # | Since: 0.3.0.0 | 
| Traversable (Void3 a b :: Type -> Type) Source # | |
| Defined in Control.Applicative.Step | |
| Functor (Void3 a b :: Type -> Type) Source # | |
| Invariant (Void3 a b :: Type -> Type) Source # | Since: 0.3.0.0 | 
| Defined in Control.Applicative.Step | |
| Alt (Void3 a b :: Type -> Type) Source # | |
| Apply (Void3 a b :: Type -> Type) Source # | |
| Bind (Void3 a b :: Type -> Type) Source # | |
| (Typeable a, Typeable b, Typeable c, Typeable k1, Typeable k2, Typeable k3) => Data (Void3 a b c) Source # | |
| Defined in Control.Applicative.Step Methods gfoldl :: (forall d b0. Data d => c0 (d -> b0) -> d -> c0 b0) -> (forall g. g -> c0 g) -> Void3 a b c -> c0 (Void3 a b c) # gunfold :: (forall b0 r. Data b0 => c0 (b0 -> r) -> c0 r) -> (forall r. r -> c0 r) -> Constr -> c0 (Void3 a b c) # toConstr :: Void3 a b c -> Constr # dataTypeOf :: Void3 a b c -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c0 (t d)) -> Maybe (c0 (Void3 a b c)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c0 (t d e)) -> Maybe (c0 (Void3 a b c)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Void3 a b c -> Void3 a b c # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Void3 a b c -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Void3 a b c -> r # gmapQ :: (forall d. Data d => d -> u) -> Void3 a b c -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Void3 a b c -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Void3 a b c -> m (Void3 a b c) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Void3 a b c -> m (Void3 a b c) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Void3 a b c -> m (Void3 a b c) # | |
| Semigroup (Void3 a b c) Source # | |
| Generic (Void3 a b c) Source # | |
| Read (Void3 a b c) Source # | |
| Show (Void3 a b c) Source # | |
| Eq (Void3 a b c) Source # | |
| Ord (Void3 a b c) Source # | |
| Defined in Control.Applicative.Step | |
| type FunctorBy (Void3 :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # | |
| Defined in Data.HBifunctor.Associative | |
| type NonEmptyBy (Void3 :: (Type -> Type) -> (Type -> Type) -> Type -> Type) Source # | |
| type Rep (Void3 a b c) Source # | |