anchor.diff:  // Configuration types
   // ---------------------------
   
  -/// **Description**
  -///
  -/// Interface defining the negotiation rules and the `HttpHandler` for unacceptable requests when doing content negotiation in Giraffe.
  -///
  +/// <summary>
  +/// Interface defining the negotiation rules and the <see cref="HttpHandler" /> for unacceptable requests when doing content negotiation in Giraffe.
  +/// </summary>
   type INegotiationConfig =
  -    /// **Description**
  +    /// <summary>
  +    /// A dictionary of mime types and response writing <see cref="HttpHandler" /> functions.
       ///
  -    /// 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.
  -    ///
  -    /// **Example**
  -    ///
  -    /// `dict [ "application/json", json; "application/xml" , xml ]`
  -    ///
  +    /// 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.
  +    /// </summary>
  +    /// <example>
  +    /// <code>
  +    /// dict [ "application/json", json; "application/xml" , xml ]
  +    /// </code>
  +    /// </example>
       abstract member Rules : IDictionary<string, obj -> HttpHandler>
   
  -    /// **Description**
  -    ///
  -    /// 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`.
  -    ///
  +    /// <summary>
  +    /// 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.
  +    /// </summary>
  +    /// <returns></returns>
       abstract member UnacceptableHandler : HttpHandler
           
   let private unacceptableHandler =
  
positive.code:         member __.UnacceptableHandler = unacceptableHandler
              
  
  /// **Description**
  ///
  /// An implementation of `INegotiationConfig` which allows returning JSON only.
  ///
  /// **Supported mime types**
  ///
  /// `*/*`: If a client accepts any content type then the server will return a JSON response.
  /// `application/json`: Server will send a JSON response.
  ///
  type JsonOnlyNegotiationConfig() =
      interface INegotiationConfig with
          member __.Rules =
  
negative.code:             else
                  negotiationRules.[mimeType.MediaType.Value] responseObj earlyReturn this
  
      /// <summary>
      /// Sends a response back to the client based on the request's Accept header.
      ///
      /// The negotiation rules as well as a <see cref="HttpHandler" /> for unacceptable requests can be configured in the ASP.NET Core startup code by registering a custom class of type <see cref="INegotiationConfig"/>.
      /// </summary>
      /// <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.NegotiateAsync (responseObj : obj) =
          let config = this.GetService<INegotiationConfig>()
          this.NegotiateWithAsync config.Rules config.UnacceptableHandler responseObj
  