anchor.diff:  /// if given a value of type `'inp`. Practically speaking, `'inp` is typically
   /// a function combining the outputs of the captured parsers constituting this pipe section.
   [<AbstractClass>]
  -type IPipeLink<'inp, 'out, 'u>() =
  +type PipeLink<'inp, 'out, 'u>() =
       /// Convert to a `Parser<'inp -> 'out, 'u>`. This defers the
       /// requirement of an `'inp` value to after parsing, rather than
       /// before creating the parser.
  
positive.code:     }
  
  let rec private linkIgnored p =
      { new IPipeLink<'a, 'a, 'u>() with
          member __.ToFunctionParser = p >>% id
          member __.ToOutputParser f = p >>% f
          member __.LinkUp up = link1 (up .>> p)
  
negative.code:     }
  
  let link0 () =
      { new PipeLink<_, _, _>() with
          member __.ToFunctionParser = preturn id
          member __.ToOutputParser f = preturn f
          member __.LinkUp up = link1 up
  