anchor.diff:      // of repetitions of any word in p's language.
       let reps min max p =
           match min,max with
  -        | l,u when l < 0 -> invalidArg "min" "min >= 0"
  +        | l,_ when l < 0 -> invalidArg "min" "min >= 0"
           | l,u when u < l -> invalidArg "max" "max >= min"
           | l,u            -> seq { l..u }
                               |> Seq.map (fun n -> rep n p)
  
positive.code:         | Char _       -> false
          | Union (a, b) -> empty a && empty b
          | Cat (a, b)   -> empty a || empty b
          | Star p       -> false
  
      // Given two sequences and a function, return the result of applying
      // that function to every pair of values in the sequences.
  
negative.code:                                 | false, []
                                  | false, _::_
                                  | true,  [] -> baseParser::rest // Add a new parser for non-maximal munchers
                                  | true,  _::_ -> rest)          // Otherwise, just keep the old one ticking along.
                                  |> List.map (fun p -> dP x p)
                                  |> List.map compact
                                  |> reject empty
  