dual type operator
Hypothetical operator that allows computing the dual of a type.
For example given a type:
data Either a b = Left a | Right b
You might want to be able to express Dual (Either a b) which should be isomorphic to:
data DualEither a b = DualEither {left :: a, right :: b}
One might want this for co-completeness checking.
Maybe you kind of get for free in certain linear logic like type systems (literally the dual relationship?)?