TypeClasses defines general programmatic abstractions taken from Scala cats and Haskell TypeClasses.
The following interfaces are defined:
|The basic definition of a container or computational context.
|Computational context with support for parallel execution.
|Computational context with support for sequential, nested execution.
|The notion of something which can be combined with other things of its kind.
|A semigroup with a neutral element is called a Monoid, an often used category.
|Slightly different than Monoid, the
orelse semantic does not merge two values, but just takes one of the two.