Type of composition requested: Of, Invariant, Covariant,
Applicative, or Traversable. The Option datatype can do
all of them.
The original ParameterizedGiven for the typeclass under test as it is before composition.
The instance of Option for the typeclass under test.
Typeclass test options for the F datatype when it is
wrapped in an Option.
Return the given options transformed into options for a composed typeclass test, where the outer composed datatype is an
Option.For example if we are testing
Covariantlaws onMyTuple, and the underlying types are allnumber, then the correctgiventype required for these tests, isParameterizedGiven<CovariantTypeLambda, MyTupleLambda, number>.If we wanted to run the same law test but on a composed instance of
MyTupleinside anOption, then we could use this function to convert the options to the required type. Then we can run these new options to test typeclass laws on the composed instance.