Validation of patterns/matches.
super::usefulness explains most of what is happening in this file. As explained there,
values and patterns are made from constructors applied to fields. This file defines a
Constructor enum, a
Fields struct, and various operations to manipulate them and convert
them from/to patterns.
Note: tests specific to this file can be found in: