ModuleAgda-2.8.0.2Haskell2010
Agda.Utils.TypeLevel
Synopsis
- family All
- family If
- family Foldr
- family Foldr'
- family Map
- data ConsMap0
- data ConsMap1
- family Constant
- type Arrows
- type Products
- data StrictPair
- type StrictProducts
- value strictCurry
- value strictUncurry
- family IsBase
- family Domains
- family Domains'
- family CoDomain
- family CoDomain'
- class Currying
- class StrictCurrying
- data Function
- data Constant0
- data Constant1
- family Apply
- PackageAgda-2.8.0.2
- 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.8.0.2 · Agda.Utils.TypeLevelStrictCurrying as b => StrictCurrying (a ': as) bDefined in Agda-2.8.0.2 · Agda.Utils.TypeLevel
Instances4Apply
type Apply Constant0 a = Constant1 aDefined in Agda-2.8.0.2 · Agda.Utils.TypeLeveltype Apply (ConsMap0 f) a = ConsMap1 f aDefined in Agda-2.8.0.2 · Agda.Utils.TypeLeveltype Apply (ConsMap1 f a2) tl = Apply f a2 ': tlDefined in Agda-2.8.0.2 · Agda.Utils.TypeLeveltype Apply (Constant1 a) b = aDefined in Agda-2.8.0.2 · Agda.Utils.TypeLevel