Ambiguous pattern variables
Abstract
The or-pattern (p | q) matches a value v if either p or q match v. It may happen that both p and q match certain values, but that they don’t bind their variables at the same places. OCaml specifies that the left pattern p then takes precedence, but users intuitively expect an angelistic, making the “best” choice. Subtle bugs arise from this mismatch. We here describe a technique based upon pattern matrices that detect such ambiguities. This technique is implemented as a new warning in the OCaml compiler.
Domains
Programming Languages [cs.PL]
Origin : Files produced by the author(s)