This commit adds some basic typescript abstractions for Functors, Applicatives, Monads, and Semigroups.
Most of the abstractions are as abstract typescript classes. The reason for this design decision is that certain derived methods can be added automatically by simply extending these classes (for instance, the applicative apply method is added automatically once one overrides map and chain in a Monad).
ToDo: Add derivations for fantasyland synonymous methods from the basic methods.
This commit adds some basic typescript abstractions for Functors, Applicatives, Monads, and Semigroups.
Most of the abstractions are as abstract typescript classes. The reason for this design decision is that certain derived methods can be added automatically by simply extending these classes (for instance, the applicative
apply
method is added automatically once one overridesmap
andchain
in a Monad).ToDo: Add derivations for fantasyland synonymous methods from the basic methods.