A 2-arity kind which consists of objects and arrows between them.

All instances of category c must satisfy the following laws:

  • Right identity: For all f; c.compose(f)(c.identity()) equals to f,
  • Left identity: For all f; c.compose(c.identity())(f) equals to f,
  • Associativity: For all f, g and h; c.compose(f)(c.compose(g)(h)) equals to c.compose(c.compose(f)(g))(h).

Type Parameters

  • Cat

  • T

Hierarchy

Properties

assoc: (<A, B, C>() => Iso<Cat, Instance<Apply2<T, Instance<Apply2<T, C, B>>, A>>, Instance<Apply2<T, C, Instance<Apply2<T, B, A>>>>>)

Type declaration

cat1: Category<Cat>
cat2: Category<Cat>
cat3: Category<Cat>
compose: (<B, C>(funcA) => (<A>(funcB) => Instance<Apply2<Cat, C, A>>))

Type declaration

genericBiMap: (<A, B>(first) => (<C, D>(second) => Instance<Apply2<Cat, Instance<Apply2<T, D, B>>, Instance<Apply2<T, C, A>>>>))

Type declaration

identity: (<A>() => Instance<Apply2<Cat, A, A>>)

Type declaration

swap: (<A, B>() => Get2<Cat, Get2<T, A, B>, Get2<T, B, A>>)

Type declaration

Generated using TypeDoc