anchor.diff:  type DesigntimeFarkle<'T> = 
       inherit DesigntimeFarkle
   
  +type internal DesigntimeFarkleWithMetadata =
  +    abstract InnerDesigntimeFarkle: DesigntimeFarkle
  +
  +type internal DesigntimeFarkleWithMetadata<'T> = {
  +    InnerDesigntimeFarkle: DesigntimeFarkle<'T>
  +    Metadata: GrammarMetadata
  +}
  +with
  +    static member Create (df: DesigntimeFarkle<'T>) =
  +        match df with
  +        | :? DesigntimeFarkleWithMetadata<'T> as dfwm -> dfwm
  +        | _ -> {InnerDesigntimeFarkle = df; Metadata = GrammarMetadata.Default}
  +    interface DesigntimeFarkle<'T> with
  +        member x.Name = x.InnerDesigntimeFarkle.Name
  +        member x.Metadata = x.Metadata
  +    interface DesigntimeFarkleWithMetadata with
  +        member x.InnerDesigntimeFarkle = upcast x.InnerDesigntimeFarkle
  +
   /// <summary>A terminal symbol.</summary>
   /// <typeparam name="T">The type of the objects this terminal generates.</typeparam>
   type Terminal<'T> = internal {
  
positive.code:         member x.Transformer = x.Transformer
      interface DesigntimeFarkle with
          member x.Name = x._Name
          member __.ResultingType = typeof<'T>
      interface DesigntimeFarkle<'T>
  
  /// Functions to create `Terminal`s.
  
negative.code: /// </remarks>
  type T<'T> = delegate of Position * ReadOnlySpan<char> -> 'T
  
  /// The information about a grammar that cannot be expressed
  /// by its terminals and nonterminals.
  type GrammarMetadata = {
      /// Whether the grammar is case sensitive.
      CaseSensitive: bool
  }
  with
      /// The default metadata of a grammar.
      /// According to them, the grammar is not case sensitive.
      static member Default = {CaseSensitive = false}
  
  /// <summary>The base, untyped interface of <see cref="DesigntimeFarkle{T}"/>.</summary>
  /// <remarks>User code must not implement this interface, or an error may be raised.</remarks>
  /// <seealso cref="DesigntimeFarkle{T}"/>
  type DesigntimeFarkle =
      /// The name of the starting symbol.
      abstract Name: string
      /// <summary>The associated <see cref="GrammarMetadata"/> object.</summary>
      abstract Metadata: GrammarMetadata
  
  [<CompiledName("AbstractTerminal")>]
  /// <summary>The base, untyped interface of <see cref="Terminal{T}"/>.</summary>
  /// <seealso cref="Terminal{T}"/>
  type internal Terminal =
      inherit DesigntimeFarkle
      /// <summary>The <see cref="Regex"/> that defines this terminal.</summary>
      abstract Regex: Regex
  