Skip to content

Add the core functionality of the library #19

@jeltsch

Description

@jeltsch

We shall add the core functionality of the library, by which we mean everything except support for linear types. Concretely, we shall implement the following classes:

  • Universal
  • Functor
  • Distinctive
  • Monad
  • Comonad
  • Adjoint
  • AdjointMonad

We shall provide default implementations for all methods based on the following constraints:

  • In the case of Distinctive, the constraint that the distinctive functor is a left adjoint of the universal functor
  • In the case of Adjoint, the constraint that the adjoint functor is an adjoint monad
  • In the case of AdjointMonad, the trivial constraint (the implementations shall be based on the superclasses)
  • In the case of all other classes, the constraint that the universal functor is the identity functor

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions