(_::a::b::_ | a::b::Nil)matches a list of length two or greater; if the list has length two, then the elements are bound to a and b, if the list has length greater than two, then the second and third elements are bound to a and b.
(x isnot Red)has the same effect as
(x is (Green|Blue))The subpattern of a negative pattern cannot have free variables.
datatype rule = RULE of (pat list * exp option * exp) datatype match = M of rule listThe first step of the algorithm is to canonicalize the patterns in the match.
|