ModuleAgda-2.7.0.1Haskell2010
Agda.Utils.TypeLevel
- 9 types
- 2 classes
- 2 values
- PackageAgda-2.7.0.1
- Exports25
- LanguageHaskell2010
- LicenceMIT
- SourceTypeLevel.hs
Arrows [a1,..,an] r corresponds to a1 -> .. -> an -> r
| Products [a1,..,an] corresponds to (a1, (..,( an, ())..))
Constructors
Pair a b
Currying as b witnesses the isomorphism between Arrows as b
and Products as -> b. It is defined as a type class rather
than by recursion on a singleton for as so all of that these
conversions are inlined at compile time for concrete arguments.
Methods
strictUncurrys :: Proxy as -> Proxy b -> Arrows as b -> StrictProducts as -> bstrictCurrys :: Proxy as -> Proxy b -> (StrictProducts as -> b) -> Arrows as b
Instances2StrictCurrying
StrictCurrying '[] bDefined in Agda-2.7.0.1 · Agda.Utils.TypeLevelStrictCurrying as b => StrictCurrying (a ': as) bDefined in Agda-2.7.0.1 · Agda.Utils.TypeLevel
Instances4Apply
type Apply Constant0 a = Constant1 aDefined in Agda-2.7.0.1 · Agda.Utils.TypeLeveltype Apply (ConsMap0 f) a = ConsMap1 f aDefined in Agda-2.7.0.1 · Agda.Utils.TypeLeveltype Apply (ConsMap1 f a2) tl = Apply f a2 ': tlDefined in Agda-2.7.0.1 · Agda.Utils.TypeLeveltype Apply (Constant1 a) b = aDefined in Agda-2.7.0.1 · Agda.Utils.TypeLevel