anchor.diff:  // tyExpr
   do
       let varTy =
  -        skipChar '\'' >>. id |> pos |>> VarTy
  +        skipChar '\'' >>. (fatalizeAnyError id) |> pos |>> VarTy
       let name =
           pos id |>>
           (fun (p, n) ->
  
positive.code:     let parens = betweenChar '(' (expr |>> unwrap) ')'
      let ptrue = skipString "true" |> pos |>> TrueExp
      let pfalse = skipString "false" |> pos |>> FalseExp
      let floatParser =
          fun stream ->
              let reply = numberLiteralE NumberLiteralOptions.DefaultFloat (expected "floating-point number") stream
              if reply.Status = Ok then
                  let result = reply.Result
                  if result.IsInteger then
                      stream.Skip(-result.String.Length)
                      Reply(Error, expected "floating-point number with decimal")
                  else
                      try
                          let d =
                              if result.IsDecimal then
                                  System.Double.Parse(result.String, System.Globalization.CultureInfo.InvariantCulture)
                              elif result.IsHexadecimal then
                                  floatOfHexString result.String
                              elif result.IsInfinity then
                                  if result.HasMinusSign then System.Double.NegativeInfinity else System.Double.PositiveInfinity
                              else
                                  System.Double.NaN
                          Reply(d)
                      with 
                      | :? System.OverflowException ->
                          Reply(if result.HasMinusSign then System.Double.NegativeInfinity else System.Double.PositiveInfinity)
                      | :? System.FormatException ->
                          stream.Skip(-result.String.Length)
                          Reply(FatalError, messageError "The floating-point number has an invalid format (this error is unexpected, please report this error message to fparsec@quanttec.com).")
              else
                  Reply(reply.Status, reply.Error)
      
      let pfloating = (floatParser .>>. choice [skipChar 'f' >>. preturn FloatExp; preturn DoubleExp]) |>
                      pos |>>
  
negative.code:                 | ArrayTyCap cap -> ArrayTy {valueType=term; capacity=cap}
                  | RefTyRef _ -> RefTy term
                  | ApplyTyTemplate template -> ApplyTy {tyConstructor=term; args=template})
  
  let floatParser =
      fun stream ->
          let reply = numberLiteralE NumberLiteralOptions.DefaultFloat (expected "floating-point number") stream
          if reply.Status = Ok then
              let result = reply.Result
              if result.IsInteger then
                  stream.Skip(-result.String.Length)
                  Reply(Error, expected "floating-point number with decimal")
              else
                  try
                      let d =
                          if result.IsDecimal then
                              System.Double.Parse(result.String, System.Globalization.CultureInfo.InvariantCulture)
                          elif result.IsHexadecimal then
                              floatOfHexString result.String
                          elif result.IsInfinity then
                              if result.HasMinusSign then System.Double.NegativeInfinity else System.Double.PositiveInfinity
                          else
                              System.Double.NaN
                      Reply(d)
                  with 
                  | :? System.OverflowException ->
                      Reply(if result.HasMinusSign then System.Double.NegativeInfinity else System.Double.PositiveInfinity)
                  | :? System.FormatException ->
                      stream.Skip(-result.String.Length)
                      Reply(FatalError, messageError "The floating-point number has an invalid format (this error is unexpected, please report this error message to fparsec@quanttec.com).")
          else
              Reply(reply.Status, reply.Error)
  
  // Pattern
  do
  