Functor
- Container with somewhere to store values(s)
- Some way of applying a function to values(s)
- Must return values(s) in same context
or a shorter explain:
a functor is simply something that can be mapped over
Monid
a monoid is a semigroup with an identity element.
Semigroup
A semigroup is an algebraic structure with a binary operation that satisfies the associativity law.
In PureScript, the binary operation for a semigroup that satisfies the associative property is called append, whose infix operator is <>
monoid
Identity: whenever we append one or more elements to it, we get back those elements
In PureScript, mempty (monoid empty) to reference the identity element of a monoid.