-
-
Notifications
You must be signed in to change notification settings - Fork 504
/
Category.ts
41 lines (36 loc) · 999 Bytes
/
Category.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* @since 2.0.0
*/
import { HKT2, Kind2, Kind3, Kind4, URIS2, URIS3, URIS4 } from './HKT'
import { Semigroupoid, Semigroupoid2, Semigroupoid3, Semigroupoid4 } from './Semigroupoid'
// -------------------------------------------------------------------------------------
// model
// -------------------------------------------------------------------------------------
/**
* @category model
* @since 2.0.0
*/
export interface Category<F> extends Semigroupoid<F> {
readonly id: <A>() => HKT2<F, A, A>
}
/**
* @category model
* @since 2.0.0
*/
export interface Category2<F extends URIS2> extends Semigroupoid2<F> {
readonly id: <A>() => Kind2<F, A, A>
}
/**
* @category model
* @since 2.0.0
*/
export interface Category3<F extends URIS3> extends Semigroupoid3<F> {
readonly id: <R, A>() => Kind3<F, R, A, A>
}
/**
* @category model
* @since 2.0.0
*/
export interface Category4<F extends URIS4> extends Semigroupoid4<F> {
readonly id: <S, R, A>() => Kind4<F, S, R, A, A>
}