Given a type class instance for F
, and a type class instance for a
composition, produce a type class instance for the composition wrapped by
F
.
Given a type class instance for F
, and a type class instance for a
composition, produce a type class instance for the composition wrapped by
F
.
Users of this class should start with idCompose
and use the
functions on scalaz.typelevel.KTypeClass.WrappedComposition, which greatly
improves type inference.
Given a type class instance for F
, and a type class instance for a
product, produce a type class instance for the product prepended with F
.
Given a type class instance for F
, and a type class instance for a
product, produce a type class instance for the product prepended with F
.
Users of this class should start with emptyProduct
and use the
functions on scalaz.typelevel.KTypeClass.WrappedProduct, which greatly
improves type inference.
The unwrapped composition of two instances.
The unwrapped composition of three instances.
The empty product.
The empty product.
an instance of scalaz.typelevel.KTypeClass.WrappedProduct representing an empty product
The empty composition.
The empty composition.
an instance of scalaz.typelevel.KTypeClass.WrappedComposition representing an empty composition
The unwrapped product containing one element.
The unwrapped product containing two elements.
The unwrapped product containing three elements.
A type class abstracting over the
product
andcompose
operations of type classes over types of kind* -> *
.It serves as a replacement for the various
Product*
classes in scalaz.Multiplication of instances is done via wrappers which are unpacked automatically if the implicits of scalaz.syntax.typelevel.TypeClasses are imported.
scalaz.typelevel.TCList
scalaz.syntax.typelevel.TypeClasses