A value that represents match or non-match against a specific pattern.
Holds if the
Gets an expression that has this abstract value. Two expressions that have the same concrete value also have the same abstract value, but not necessarily the other way around.
Gets the case.
Gets an abstract value that represents the dual of this value, if any.
Holds if this value represents a match.
Holds if this is a singleton abstract value. That is, two expressions that have this abstract value also have the same concrete value.
Gets a textual representation of this abstract value.