Copyright | (c) Aaron Friel |
---|---|
License | BSD-3 |
Maintainer | Aaron Friel <mayreply@aaronfriel.com> |
Stability | unstable |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
- class (GFunctor f, GPointed f) => GApplicative f where
- type Apply f (i :: p) (j :: p) :: p
- type ApplyInv f (i :: p) (j :: p) :: Constraint
- type LiftA2 f (i :: p) (j :: p) :: p
- type LiftA2Inv f (i :: p) (j :: p) :: Constraint
- type Then f (i :: p) (j :: p) :: p
- type ThenInv f (i :: p) (j :: p) :: Constraint
- type But f (i :: p) (j :: p) :: p
- type ButInv f (i :: p) (j :: p) :: Constraint
Documentation
class (GFunctor f, GPointed f) => GApplicative f where Source #
Graph indexed applicative functor.
type Apply f (i :: p) (j :: p) :: p Source #
type ApplyInv f (i :: p) (j :: p) :: Constraint Source #
type LiftA2 f (i :: p) (j :: p) :: p Source #
The liftA2
operation on the graph index.
Default instance: Lift f i j =
Apply
f (Apply
f (Pure
f) i) j
type LiftA2Inv f (i :: p) (j :: p) :: Constraint Source #
type Then f (i :: p) (j :: p) :: p Source #
type ThenInv f (i :: p) (j :: p) :: Constraint Source #
type But f (i :: p) (j :: p) :: p Source #
type ButInv f (i :: p) (j :: p) :: Constraint Source #
gap :: ApplyInv f i j => f i (a -> b) -> f j a -> f (Apply f i j) b Source #
Sequential application (<*>
).
gliftA2 :: LiftA2Inv f i j => (a -> b -> c) -> f i a -> f j b -> f (LiftA2 f i j) c Source #
Lift a binary function to actions.
gliftA2 :: (Apply f (Fmap f i) j ~ LiftA2 f i j, ApplyInv f (Fmap f i) j) => (a -> b -> c) -> f i a -> f j b -> f (LiftA2 f i j) c Source #
Lift a binary function to actions.
gthen :: ThenInv f i j => f i a -> f j b -> f (Then f i j) b Source #
Sequence actions, discarding the value of the first argument (*>
).
Default implementation requires the default instance of Then
.
gthen :: (Apply f (Replace f i) j ~ Then f i j, ApplyInv f (Replace f i) j, ThenInv f (Replace f i) j) => f i a -> f j b -> f (Then f i j) b Source #
Sequence actions, discarding the value of the first argument (*>
).
Default implementation requires the default instance of Then
.
gbut :: ButInv f i j => f i a -> f j b -> f (But f i j) a Source #
Sequence actions, discarding values of the second argument (<*
).
Default implementation requires the default instance of But
.
gbut :: (LiftA2 f i j ~ But f i j, LiftA2Inv f i j) => f i a -> f j b -> f (But f i j) a Source #
Applicative f => GApplicative * (GWrapped f) Source # | |
IxApplicative * f => GApplicative (*, *) (WrappedIx f) Source # | |