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
coproductoperation of type classes over types of kind*.Name hints can be safely ignored.