| Copyright | (c) Justin Le 2019 |
|---|---|
| License | BSD3 |
| Maintainer | justin@jle.im |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Functor.Apply.Free
Description
Documentation
data Ap1 :: (Type -> Type) -> Type -> Type where Source #
One or more fs convolved with itself.
Essentially:
Ap1f ~ f -- one f:+:(f `Day` f) -- two f's :+: (f `Day` f `Day` f) -- three f's :+: (f `Day` f `Day` f `Day` f) -- four f's :+: ... -- etc.
Useful if you want to promote an f to a situation with "at least one
f sequenced with itself".
Mostly useful for its HFunctor and Interpret instance, along with
its relationship with Ap and Day.
This is the free Apply --- Basically a "non-empty" Ap.
The construction here is based on Ap, similar to now
NonEmpty is built on list.
Bundled Patterns
| pattern DayAp1 :: Day f (Ap f) a -> Ap1 f a | An |
Instances
| HBind Ap1 Source # | |
| Inject Ap1 Source # | |
| FreeOf Apply Ap1 Source # | |
| HTraversable Ap1 Source # | |
Defined in Data.Functor.Apply.Free | |
| HTraversable1 Ap1 Source # | |
Defined in Data.Functor.Apply.Free | |
| HFunctor Ap1 Source # | |
| Apply f => Interpret Ap1 (f :: Type -> Type) Source # | |
| Functor (Ap1 f) Source # | |
| Invariant (Ap1 f) Source # | Since: 0.3.0.0 |
Defined in Data.Functor.Apply.Free | |
| Apply (Ap1 f) Source # | |
| type FreeFunctorBy Ap1 Source # | |
Defined in Data.HFunctor.Final | |
retractAp1 :: Apply f => Ap1 f ~> f Source #
Extract the f out of the Ap1.
retractAp1.liftAp1== id