Monoidal
public protocol Monoidal : Semigroupal
The Monoidal type class adds an identity element to Semigroupal type class by defining the function identity.
Identity returns a specific identity Kind<F, A>
value for a given type F and A.
This type class complies with the following law: fa.product(identity) == identity.product(fa) == identity
In addition, the laws of Semigroupal type class also apply.