Here are some computer languages that may be suitable for coding category theory constructs:

### Charity

### Squiggol

Birdâ€“Meertens formalism

- http://www.cs.ox.ac.uk/publications/publication13852-abstract.html
- http://www.cs.nott.ac.uk/~pszjlh/pcalc.html

### Hagino

### OBJ language family

- http://cseweb.ucsd.edu/~goguen/sys/obj.html
- https://www.quantamagazine.org/with-category-theory-mathematics-escapes-from-equality-20191010/

## Haskell Code

Code from here.

## Catagory Theory in Idris

## Scala Code

Code from here. package scalaz

package scalaz trait Category[F[_, _]] { val id: Id[F] val compose: Compose[F] def i[A]: F[A, A] = id.id[A] def comp[A, B, C](f: F[B, C], g: F[A, B]): F[A, C] = compose.compose(f, g) } object Category extends Categorys trait Categorys { def category[F[_, _]](implicit ii: Id[F], c: Compose[F]): Category[F] = new Category[F] { val id = ii val compose = c } implicit val Function1Category: Category[Function1] = category[Function1] implicit val PartialFunctionCategory: Category[PartialFunction] = category[PartialFunction] implicit val `<:<_Category` : Category[<:<] = category[<:<] implicit val `=:=_Category` : Category[=:=] = category[=:=] }