anchor.diff:  // ---------------------------
   
   type HttpContext with
  -    /// **Description**
  +    /// <summary>
  +    /// Sends a response back to the client based on the request's Accept header.
       ///
  -    /// Sends a response back to the client based on the request's `Accept` header.
  -    ///
  -    /// If the `Accept` header cannot be matched with one of the supported mime types from the `negotiationRules` then the `unacceptableHandler` will be invoked.
  -    ///
  -    /// **Parameters**
  -    ///
  -    /// `negotiationRules`: A dictionary of mime types and response writing `HttpHandler` functions. Each mime type must be mapped to a function which accepts an `obj` and returns a `HttpHandler` which will send a response in the associated mime type (e.g.: `dict [ "application/json", json; "application/xml" , xml ]`).
  -    /// `unacceptableHandler`: A `HttpHandler` function which will be invoked if none of the accepted mime types can be satisfied. Generally this `HttpHandler` would send a response with a status code of `406 Unacceptable`.
  -    /// `responseObj`: The object to send back to the client.
  -    ///
  -    /// **Output**
  -    ///
  -    /// Task of `Some HttpContext` after writing to the body of the response.
  -    ///
  +    /// If the Accept header cannot be matched with one of the supported mime types from the negotiationRules then the unacceptableHandler will be invoked.
  +    /// </summary>
  +    /// <param name="negotiationRules">A dictionary of mime types and response writing <see cref="HttpHandler" /> functions. Each mime type must be mapped to a function which accepts an obj and returns a <see cref="HttpHandler" /> which will send a response in the associated mime type (e.g.: dict [ "application/json", json; "application/xml" , xml ]).</param>
  +    /// <param name="unacceptableHandler"> A <see cref="HttpHandler" /> function which will be invoked if none of the accepted mime types can be satisfied. Generally this <see cref="HttpHandler" /> would send a response with a status code of 406 Unacceptable.</param>
  +    /// <param name="responseObj">The object to send back to the client.</param>
  +    /// <returns>Task of Some HttpContext after writing to the body of the response.</returns>
       member this.NegotiateWithAsync (negotiationRules    : IDictionary<string, obj -> HttpHandler>)
                                 (unacceptableHandler : HttpHandler)
                                 (responseObj         : obj) =
  
positive.code:             else
                  negotiationRules.[mimeType.MediaType.Value] responseObj earlyReturn this
  
      /// **Description**
      ///
      /// Sends a response back to the client based on the request's `Accept` header.
      ///
      /// The negotiation rules as well as a `HttpHandler` for unacceptable requests can be configured in the ASP.NET Core startup code by registering a custom class of type `INegotiationConfig`.
      ///
      /// **Parameters**
      ///
      /// `responseObj`: The object to send back to the client.
      ///
      /// **Output**
      ///
      /// Task of `Some HttpContext` after writing to the body of the response.
      ///
      member this.NegotiateAsync (responseObj : obj) =
          let config = this.GetService<INegotiationConfig>()
          this.NegotiateWithAsync config.Rules config.UnacceptableHandler responseObj
  
negative.code: // HttpHandler functions
  // ---------------------------
  
  /// <summary>
  /// Sends a response back to the client based on the request's Accept header.
  ///
  /// If the Accept header cannot be matched with one of the supported mime types from the negotiationRules then the unacceptableHandler will be invoked.
  /// </summary>
  /// <param name="negotiationRules">A dictionary of mime types and response writing <see cref="HttpHandler" /> functions. Each mime type must be mapped to a function which accepts an obj and returns a <see cref="HttpHandler" /> which will send a response in the associated mime type (e.g.: dict [ "application/json", json; "application/xml" , xml ]).</param>
  /// <param name="unacceptableHandler">A <see cref="HttpHandler" /> function which will be invoked if none of the accepted mime types can be satisfied. Generally this <see cref="HttpHandler" /> would send a response with a status code of 406 Unacceptable.</param>
  /// <param name="responseObj">The object to send back to the client.</param>
  /// <param name="ctx"></param>
  /// <returns>A Giraffe <see cref="HttpHandler" /> function which can be composed into a bigger web application.</returns>
  let negotiateWith (negotiationRules    : IDictionary<string, obj -> HttpHandler>)
                    (unacceptableHandler : HttpHandler)
                    (responseObj         : obj)
  