Defines way to transform give type constructor F
Defines a strategy for tupling A and B values, according to types A and B.
A
B
The actual implementation avoids nested tuples and eliminates Unit, so that instead of ending with, e.g., the following type:
Unit
((Unit, Int), (((Unit, Unit), String)))
We just get:
(Int, String)
The following rules are implemented (by increasing priority):
Defines a strategy for tupling
A
andB
values, according to typesA
andB
.The actual implementation avoids nested tuples and eliminates
Unit
, so that instead of ending with, e.g., the following type:We just get:
The following rules are implemented (by increasing priority):