anchor.diff:          | Char _       -> false
           | Union (a, b) -> nullable a || nullable b
           | Cat (a, b)   -> nullable a && nullable b
  -        | Star a       -> true
  +        | Star _       -> true
   
       // empty returns true if a parser has failed to recognise a string.
       let rec empty = function
  
positive.code:     // 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,u when u < l -> invalidArg "max" "max >= min"
          | l,u            -> seq { l..u }
                              |> Seq.map (fun n -> rep n p)
  
negative.code:         | Char _       -> false
          | Union (a, b) -> empty a && empty b
          | Cat (a, b)   -> empty a || empty b
          | Star _       -> false
  
      // Given two sequences and a function, return the result of applying
      // that function to every pair of values in the sequences.
  