Overview
Type defunctionalization (as describe in Lightweight higher-kinded polymorphism)
Table of contents
- HKT (interface)
- HKT2 (interface)
- HKT3 (interface)
- HKT4 (interface)
- URI2HKT (interface)
- URI2HKT2 (interface)
- URI2HKT3 (interface)
- URI2HKT4 (interface)
- Type (type alias)
- Type2 (type alias)
- Type3 (type alias)
- Type4 (type alias)
- URIS (type alias)
- URIS2 (type alias)
- URIS3 (type alias)
- URIS4 (type alias)
HKT (interface)
Signature
export interface HKT<URI, A> {
readonly _URI: URI
readonly _A: A
}
HKT2 (interface)
* -> * -> *
constructors
Signature
export interface HKT2<URI, L, A> extends HKT<URI, A> {
readonly _L: L
}
HKT3 (interface)
* -> * -> * -> *
constructors
Signature
export interface HKT3<URI, U, L, A> extends HKT2<URI, L, A> {
readonly _U: U
}
HKT4 (interface)
* -> * -> * -> * -> *
constructors
Signature
export interface HKT4<URI, X, U, L, A> extends HKT3<URI, U, L, A> {
readonly _X: X
}
URI2HKT (interface)
* -> *
constructors
Signature
export interface URI2HKT<A> {}
URI2HKT2 (interface)
* -> * -> *
constructors
Signature
export interface URI2HKT2<L, A> {}
URI2HKT3 (interface)
* -> * -> * -> *
constructors
Signature
export interface URI2HKT3<U, L, A> {}
URI2HKT4 (interface)
* -> * -> * -> * -> *
constructors
Signature
export interface URI2HKT4<X, U, L, A> {}
Type (type alias)
* -> *
constructors
Signature
export type Type<URI extends URIS, A> = {} & URI2HKT<A>[URI]
Type2 (type alias)
* -> * -> *
constructors
Signature
export type Type2<URI extends URIS2, L, A> = {} & URI2HKT2<L, A>[URI]
Type3 (type alias)
* -> * -> * -> *
constructors
Signature
export type Type3<URI extends URIS3, U, L, A> = {} & URI2HKT3<U, L, A>[URI]
Type4 (type alias)
* -> * -> * -> * -> *
constructors
Signature
export type Type4<URI extends URIS4, X, U, L, A> = {} & URI2HKT4<X, U, L, A>[URI]
URIS (type alias)
* -> *
constructors
Signature
export type URIS = keyof URI2HKT<any>
URIS2 (type alias)
* -> * -> *
constructors
Signature
export type URIS2 = keyof URI2HKT2<any, any>
URIS3 (type alias)
* -> * -> * -> *
constructors
Signature
export type URIS3 = keyof URI2HKT3<any, any, any>
URIS4 (type alias)
* -> * -> * -> * -> *
constructors
Signature
export type URIS4 = keyof URI2HKT4<any, any, any, any>