/** * Category * * 1. a.compose(C.id()) is equivalent to a (right identity) * 2. C.id().compose(a) is equivalent to a (left identity) * * compose :: Category c => c i j ~> c j k -> c i k */ import { HKT, KindOf, URIS } from './HKT'; export interface Category { readonly id: () => HKT; } export interface Category1 { readonly id: () => KindOf; } export interface Category2 { readonly id: () => KindOf; }