anchor.diff:  
   module DesigntimeFarkleOperators =
   
  -    let (!!=) name parts =
  +    let (||=) name parts =
           let nont = Nonterminal.Create name
           nont.Productions.TrySet(parts) |> ignore
           nont
  
positive.code: type Terminal =
      inherit DesigntimeFarkle
      abstract Id: Guid
      // abstract Name: string
      abstract Regex: Regex
      abstract Transformer: T<obj>
  
  type Nonterminal =
      inherit DesigntimeFarkle
      abstract Id: Guid
      // abstract Name: String
      abstract Productions: Production list
  
  type Production =
  
negative.code: 
  type Terminal<'T> = internal {
      Id: Guid
      _Name: string
      Regex: Regex
      Transformer: T<obj> 
  }
  with
      static member Create<'T> name (fTransform: T<'T>) regex: Terminal<'T> = {
          Id = Guid.NewGuid()
          _Name = name
          Regex = regex
          Transformer = T(fun pos data -> fTransform.Invoke(pos, data) |> box)
      }
      member x.Name = x._Name
      interface Terminal with
          member x.Id = x.Id
          member x.Regex = x.Regex
          member x.Transformer = x.Transformer
      interface DesigntimeFarkle with
  