Given two type class instances for L
and R
, produce a type class
instance for the coproduct L :+: R
.
The empty coproduct
The empty product.
The empty product.
Given a type class instance for H
, and a type class instance for a
product, produce a type class instance for the product prepended with H
.
Given a type class instance for H
, and a type class instance for a
product, produce a type class instance for the product prepended with H
.
Given an isomorphism between F
and G
, and a type class instance for G
,
produce a type class instance for F
.
Given an isomorphism between F
and G
, and a type class instance for G
,
produce a type class instance for F
.
A type class additionally abstracting over the
coproduct
operation of type classes over types of kind*
.