anchor.diff:              else if isNull range.Ranges then None
               else Some range.Ranges
   
  -    /// **Description**
  -    ///
  -    /// Validates if the provided set of `ranges` can be satisfied with the given `contentLength`.
  -    ///
  +    /// <summary>
  +    /// Validates if the provided set of ranges can be satisfied with the given contentLength.
  +    /// </summary>
  +    /// <param name="ranges"></param>
  +    /// <param name="contentLength"></param>
  +    /// <returns></returns>
       let validateRanges (ranges : ICollection<RangeItemHeaderValue>) (contentLength : int64) =
           if      ranges.Count.Equals  0 then Error "No ranges provided."
           else if contentLength.Equals 0 then Error "Range exceeds content length (which is zero)."
  
positive.code:     fun (_ : HttpFunc) (ctx : HttpContext) ->
          ctx.WriteStreamAsync enableRangeProcessing stream eTag lastModified
  
  /// **Description**
  ///
  /// Streams a file to the client.
  ///
  /// The handler will respect any valid HTTP pre-conditions (e.g. `If-Match`, `If-Modified-Since`, etc.) and return the most appropriate response. If the optional parameters `eTag` and/or `lastModified` have been set, then it will also set the `ETag` and/or `Last-Modified` HTTP headers in the response.
  ///
  /// **Parameters**
  ///
  /// `enableRangeProcessing`: If enabled then the handler will respect the `Range` and `If-Range` HTTP headers of the request as well as set all necessary HTTP headers in the response to enable HTTP range processing.
  /// `filePath`: The absolute or relative path (to `ContentRoot`) of the file.
  /// `eTag`: An optional entity tag which identifies the exact version of the file.
  /// `lastModified`: An optional parameter denoting the last modified date time of the file.
  ///
  /// **Output**
  ///
  /// A Giraffe `HttpHandler` function which can be composed into a bigger web application.
  ///
  let streamFile (enableRangeProcessing : bool)
                 (filePath              : string)
                 (eTag                  : EntityTagHeaderValue option)
  
negative.code:     }
      member this.Length = this.End - this.Start + 1L
  
  /// <summary>
  /// A collection of helper functions to parse and validate the Range and If-Range HTTP headers of a request.
  /// </summary>
  module internal RangeHelper =
  
      /// **Description**
      ///
      /// Parses the Range HTTP header of a request.
      ///
      /// Original code taken from ASP.NET Core:
      ///
  