anchor.diff:  
       /// Parses and post-processes a .NET `TextReader`. Its content is lazily read.
       let parseTextReader rf (textReader: TextReader) =
  +        nullCheck (nameof textReader) textReader
           use cs = new CharStream(textReader, true)
           parseChars rf cs
   
       /// Parses and post-processes a file at the given path.
       let parseFile rf path =
  +        nullCheck (nameof path) path
           use s = File.OpenText(path)
           parseTextReader rf s
   
  
positive.code: namespace Farkle
  
  open Farkle.Builder
  open Farkle.Grammar
  open Farkle.IO
  open Farkle.Parser
  
negative.code:     [<MethodImpl(MethodImplOptions.AggressiveInlining)>]
      [<Obsolete("Streams are supposed to contain binary \
  data; not text. Parse a TextReader instead.")>]
      member this.Parse(inputStream, [<Optional; Nullable(2uy)>] encoding, [<Optional; DefaultParameterValue(true)>] doLazyLoad) =
          parseStream this doLazyLoad encoding inputStream
      /// <summary>Parses and post-processes a <see cref="System.IO.TextReader"/>.</summary>
      /// <param name="textReader">The text reader to parse.</param>
      /// <returns>An F# result type containing either the
  