anchor.diff:              IndentedTextWriter.indented writer <| fun writer ->
                   writer.WriteLine "("
                   IndentedTextWriter.indented writer <| fun writer ->
  -                    // TODO : May need to split 'code' into individual lines and write them to the
  -                    // IndentedTextWriter one-by-one to preserve correct indentation level.
  -                    writer.WriteLineNoTabs action
  +                    // Write the trimmed action-code lines to the IndentedTextWriter one-by-one.
  +                    // This ensures they're indented correctly with respect to the rest of the emitted code.
  +                    trimmedActionLines
  +                    |> Array.iter writer.WriteLine
                   writer.WriteLine ")"
   
               // Emit the nonterminal type for this production rule.
  
positive.code:                 // Create a generic type parameter to use for this nonterminal and let
                  // the F# compiler use type inference to figure out what type it should be.
                  "'" + nonterminal
              
          // Emit the semantic action code, wrapped in a bit of code which boxes the return value.
          writer.WriteLine "Microsoft.FSharp.Core.Operators.box"
  
negative.code:         oneLineArrayUInt16 ("_fsyacc_immediateActions", false,
              _fsyacc_immediateActions) writer
  
      /// Compute the number of consecutive space characters starting at the beginning of a string.
      /// If the string is empty or contains only space characters, this function returns None.
      let private countLeadingSpaces str =
          let mutable index = 0
          let mutable foundNonSpace = false
          let len = String.length str
          while index < len && not foundNonSpace do
              // Is the current character a space character?
              if str.[index] = ' ' then
                  index <- index + 1
              else
                  foundNonSpace <- true
  
          // If all of the characters in the string are space characters,
          // return None. Note this also correctly handles empty strings.
          if index = len then
              None
          else
              Some <| uint32 index
  
      /// Replaces the tab characters in a string with some equivalent tab string.
      let inline private replaceTabs tabString (str : string) =
          str.Replace ("\t", tabString)
  
      /// Emits F# code for a single reduction action into an IndentedTextWriter.
      let private reduction (processedSpec : ProcessedSpecification<NonterminalIdentifier, TerminalIdentifier>,
                             nonterminal : NonterminalIdentifier,
                             symbols : Symbol<NonterminalIdentifier, TerminalIdentifier>[],
  