anchor.diff:                       'A', (fun s -> ParseSucceeded s) >> ParseResult.box
                       ]
   
  -    type AdvancedScanner = {
  +    type AdvancedScanner<'Context> = {
           Name : string
  -        Parser : string -> ParseResult<obj>
  +        Parser : 'Context -> string -> ParseResult<obj>
       }
   
       // array of all possible formatters, i.e. [|"%b"; "%d"; ...|]
  
positive.code:     let private findSpecifiers = Regex(@"%(?<formatSpec>.)({(?<inside>.*?)})?")
  
      // Extends the syntax of the format string with %A{scanner}, and uses the corresponding named scanner from the advancedScanners parameter.
      let private sscanfExtHelper (advancedScanners:AdvancedScanner seq) opts (pf:PrintfFormat<_,_,_,_,'t>) s : ScanResult =
          let scannerMap =
              advancedScanners
              |> Seq.map (fun s -> s.Name, s)
  
negative.code:         | ScanSuccess objResults ->
              let results =
                  (objResults, advancedFormatters)
                  ||> Seq.map2 (fun r a -> match a with Some p -> p.Parser context (string r) | None -> ParseSucceeded r)
                  |> Seq.toArray
              match results |> Seq.choose (fun r -> match r with ParseError error -> Some error | _ -> None) |> Seq.tryHead with
              | Some error ->
  