anchor.diff:      | Reduce of Production
       /// When the parser encounters this action for a given symbol, the input text is accepted as correct and parsing ends.
       | Accept
  +    override x.ToString() =
  +        match x with
  +        | Shift x -> sprintf "Shift to state %d" x.Value
  +        | Reduce x -> sprintf "Reduce production %O" x
  +        | Accept -> "Accept"
   
   /// A LALR state. Many of them define the parsing logic of a `Grammar`.
   and LALRState = {
  
positive.code:     /// The `Nonterminal` the production is referring to.
      // Storing the map's key (the nonterminal) inside its value (this production)
      // is acceptable, because the production's head is an integral part of its definition.
      HeadSymbol: NonTerminal
      /// The `LALRSymbol`s the production is made of.
      Children: LALRSymbol ImmutableArray
  }
  
  /// An action to be taken by the LALR parser according to the given `Terminal`.
  [<RequireQualifiedAccess>]
  
negative.code:             || Char.IsLetter name.[0]
              || String.forall (fun x -> Char.IsLetter x || x = '.' || x = '-' || x = '_') name
          then
              sprintf "'%s'" name
          else
              name
  
  