It would be really neat to also be able to optionally invoke completeness checking in the dual situation to the one where one typically does.

For example, when writing a parser you often want to make sure you’ve implemented a parser for each case of a coproducts / variants / enums. It would be neat if one could automatically derive a dual type operator and use completeness checking to ensure that each variant is covered.

Strictly speaking, perhaps co-completeness checking is what I call completeness checking for records, and the actual desire expressed by this note is the ability to explicitly represent the dual of a coproducts / variants / enums. Perhaps the dual type could explicitly be used as part of the implementation of pattern matching.