h&dd]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred"6; [  http-typesA list of byte ranges.  http-typesAn individual byte range.!Negative indices are not allowed! http-types A list of s. Same type as 1, but useful to differentiate in type signatures. http-types A list of s. Same type as 1, but useful to differentiate in type signatures. http-types*A case-insensitive name of a header field.7This is the part of the header field before the colon: HeaderName: some value http-types;A full HTTP header field with the name and value separated.E.g. "Content-Length: 28" parsed into a  would turn into ("Content-Length", "28")  http-types 7https://www.rfc-editor.org/rfc/rfc9110.html#name-acceptAccept   http-types ?https://www.rfc-editor.org/rfc/rfc9110.html#name-accept-charsetAccept-Charset   http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-accept-encodingAccept-Encoding  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-accept-languageAccept-Language   http-types >https://www.rfc-editor.org/rfc/rfc9110.html#name-accept-ranges Accept-Ranges  http-types 4https://www.rfc-editor.org/rfc/rfc9111.html#name-ageAge  http-types 6https://www.rfc-editor.org/rfc/rfc9110.html#name-allowAllow http-types >https://www.rfc-editor.org/rfc/rfc9110.html#name-authorization Authorization http-types >https://www.rfc-editor.org/rfc/rfc9111.html#name-cache-control Cache-Control http-types ;https://www.rfc-editor.org/rfc/rfc9110.html#name-connection Connection http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-content-encodingContent-Encoding  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-content-languageContent-Language http-types ?https://www.rfc-editor.org/rfc/rfc9110.html#name-content-lengthContent-Length  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-content-locationContent-Location http-types 9https://www.rfc-editor.org/rfc/rfc2616.html#section-14.15 Content-MD5+This header has been obsoleted in RFC 9110.  http-types >https://www.rfc-editor.org/rfc/rfc9110.html#name-content-range Content-Range http-types =https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type Content-Type http-types 5https://www.rfc-editor.org/rfc/rfc9110.html#name-dateDate  http-types 5https://www.rfc-editor.org/rfc/rfc9110.html#name-etagETag  http-types 7https://www.rfc-editor.org/rfc/rfc9110.html#name-expectExpect  http-types 8https://www.rfc-editor.org/rfc/rfc9111.html#name-expiresExpires  http-types 5https://www.rfc-editor.org/rfc/rfc9110.html#name-fromFrom  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-host-and-authorityHost   http-types 9https://www.rfc-editor.org/rfc/rfc9110.html#name-if-matchIf-Match! http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-if-modified-sinceIf-Modified-Since"  http-types >https://www.rfc-editor.org/rfc/rfc9110.html#name-if-none-match If-None-Match# http-types 9https://www.rfc-editor.org/rfc/rfc9110.html#name-if-rangeIf-Range$  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-if-unmodified-sinceIf-Unmodified-Since% http-types >https://www.rfc-editor.org/rfc/rfc9110.html#name-last-modified Last-Modified& http-types 9https://www.rfc-editor.org/rfc/rfc9110.html#name-locationLocation'  http-types =https://www.rfc-editor.org/rfc/rfc9110.html#name-max-forwards Max-Forwards(  http-types 7https://www.rfc-editor.org/rfc/rfc9111.html#name-pragmaPragmaThis header has been deprecated in RFC 9111 in favor of "Cache-Control".)  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-proxy-authenticateProxy-Authenticate*  http-types https://www.rfc-editor.org/rfc/rfc9110.html#name-proxy-authorizationProxy-Authorization+ http-types 6https://www.rfc-editor.org/rfc/rfc9110.html#name-rangeRange, http-types 8https://www.rfc-editor.org/rfc/rfc9110.html#name-refererReferer-  http-types   http-types 5https://www.rfc-editor.org/rfc/rfc7240.html#section-3Preference-Applied?  http-types&Turns a byte range into a byte string .@  http-typesRenders a byte range into a .$renderByteRange (ByteRangeFrom 2048)"2048-"A  http-types/Turns a list of byte ranges into a byte string .B  http-types%Renders a list of byte ranges into a .9renderByteRanges [ByteRangeFrom 2048, ByteRangeSuffix 20]"bytes=2048-,-20"C  http-types)Parse the value of a Range header into a .parseByteRanges "error"NothingparseByteRanges "bytes=0-499"Just [ByteRangeFromTo 0 499]parseByteRanges "bytes=500-999"Just [ByteRangeFromTo 500 999]parseByteRanges "bytes=-500"Just [ByteRangeSuffix 500]parseByteRanges "bytes=9500-"Just [ByteRangeFrom 9500]parseByteRanges "bytes=0-0,-1",Just [ByteRangeFromTo 0 0,ByteRangeSuffix 1]'parseByteRanges "bytes=500-600,601-999"6Just [ByteRangeFromTo 500 600,ByteRangeFromTo 601 999]'parseByteRanges "bytes=500-700,601-999"6Just [ByteRangeFromTo 500 700,ByteRangeFromTo 601 999]D http-typesE http-typesF http-typesG http-types  http-types  !"#$%&'()*+,-./0123456789:;<=>?@ABC 8: !"#$%&'9<(=>)*+,-.;/01234567?@ABC Safe-Inferred6;$#I http-typesHTTP standard method (as defined by RFC 2616, and PATCH which is defined by RFC 5789).R http-typesS http-typesHTTP method (flat  ByteString type).T http-typesHTTP GET MethodU http-typesHTTP POST MethodV http-typesHTTP HEAD MethodW http-typesHTTP PUT MethodX http-typesHTTP DELETE MethodY http-typesHTTP TRACE MethodZ http-typesHTTP CONNECT Method[ http-typesHTTP OPTIONS Method\ http-typesHTTP PATCH Method] http-typesConvert a method  ByteString to a I if possible.^ http-types!Convert an algebraic method to a  ByteString.#renderMethod (parseMethod bs) == bs_ http-types Convert a I to a  ByteString.h  http-types  http-typesIJKLMNOPQRSTUVWXYZ[\]^_STUVWXYZ[\IJKLMNOPQR]^_ Safe-Inferred"6;;i http-types HTTP Status. Only the k is used for comparisons. Please use m6 to create status codes from code and message, or the  instance or the status code constants (like s:). There might be additional record members in the future.Note that the  instance is only for debugging.m http-types Create a i from a status code and message.n http-types Continue 100o http-types Continue 100p http-typesSwitching Protocols 101q http-typesSwitching Protocols 101r http-typesOK 200s http-typesOK 200t http-types Created 201u http-types Created 201v http-types Accepted 202w http-types Accepted 202x http-types!Non-Authoritative Information 203y http-types!Non-Authoritative Information 203z http-typesNo Content 204{ http-typesNo Content 204| http-typesReset Content 205} http-typesReset Content 205~ http-typesPartial Content 206 http-typesPartial Content 206 http-typesMultiple Choices 300 http-typesMultiple Choices 300 http-typesMoved Permanently 301 http-typesMoved Permanently 301 http-types Found 302 http-types Found 302 http-types See Other 303 http-types See Other 303 http-typesNot Modified 304 http-typesNot Modified 304 http-types Use Proxy 305 http-types Use Proxy 305 http-typesTemporary Redirect 307 http-typesTemporary Redirect 307  http-typesPermanent Redirect 308  http-typesPermanent Redirect 308 http-typesBad Request 400 http-typesBad Request 400 http-typesUnauthorized 401 http-typesUnauthorized 401 http-typesPayment Required 402 http-typesPayment Required 402 http-types Forbidden 403 http-types Forbidden 403 http-types Not Found 404 http-types Not Found 404 http-typesMethod Not Allowed 405 http-typesMethod Not Allowed 405 http-typesNot Acceptable 406 http-typesNot Acceptable 406 http-types!Proxy Authentication Required 407 http-types!Proxy Authentication Required 407 http-typesRequest Timeout 408 http-typesRequest Timeout 408 http-types Conflict 409 http-types Conflict 409 http-typesGone 410 http-typesGone 410 http-typesLength Required 411 http-typesLength Required 411 http-typesPrecondition Failed 412 http-typesPrecondition Failed 412 http-typesRequest Entity Too Large 413 http-typesRequest Entity Too Large 413 http-typesRequest-URI Too Long 414 http-typesRequest-URI Too Long 414 http-typesUnsupported Media Type 415 http-typesUnsupported Media Type 415 http-types#Requested Range Not Satisfiable 416 http-types#Requested Range Not Satisfiable 416 http-typesExpectation Failed 417 http-typesExpectation Failed 417 http-typesI'm a teapot 418 http-typesI'm a teapot 418  http-typesUnprocessable Entity 422 ( #https://tools.ietf.org/html/rfc4918RFC 4918)  http-typesUnprocessable Entity 422 ( #https://tools.ietf.org/html/rfc4918RFC 4918)  http-typesUpgrade Required 426 ( 2https://tools.ietf.org/html/rfc7231#section-6.5.15)  http-typesUpgrade Required 426 ( 2https://tools.ietf.org/html/rfc7231#section-6.5.15) http-typesPrecondition Required 428 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-typesPrecondition Required 428 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-typesToo Many Requests 429 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-typesToo Many Requests 429 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-types&Request Header Fields Too Large 431 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-types&Request Header Fields Too Large 431 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-typesInternal Server Error 500 http-typesInternal Server Error 500 http-typesNot Implemented 501 http-typesNot Implemented 501 http-typesBad Gateway 502 http-typesBad Gateway 502 http-typesService Unavailable 503 http-typesService Unavailable 503 http-typesGateway Timeout 504 http-typesGateway Timeout 504 http-typesHTTP Version Not Supported 505 http-typesHTTP Version Not Supported 505 http-types&Network Authentication Required 511 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-types&Network Authentication Required 511 ( #https://tools.ietf.org/html/rfc6585RFC 6585) http-typesInformational class)Checks if the status is in the 1XX range. http-typesSuccessful class)Checks if the status is in the 2XX range. http-typesRedirection class)Checks if the status is in the 3XX range. http-typesClient Error class)Checks if the status is in the 4XX range. http-typesServer Error class)Checks if the status is in the 5XX range.  http-types http-typesBe advised, that when using the "enumFrom*" family of methods or ranges in lists, it will generate all possible status codes.E.g. [status100 .. status200] generates ies of 100, 101, 102 .. 198, 199, 200The statuses not included in this library will have an empty message. http-typesi4es are ordered according to their status codes only. http-typesA i is equal to another i if the status codes are equal.  http-types  http-typesiljkmnopqrstuvwxyz{|}~ijklmnopqrstuvwxyz{|}~ Safe-Inferred"VG"  http-types6Query with some characters that should not be escaped.General form: a=b&c=d:e+f&g=h  http-typesPartially escaped query item.%The key will always be encoded using 'urlEncode True'4, but the value will be encoded depending on which  s are used.  http-typesSection of a query item value that decides whether to use regular URL encoding (using 'urlEncode True') with , or to not encode anything with . http-typeswill be URL encoded http-types will NOT at all be URL encoded http-typesA sequence of s. http-typesSimplified query item type without support for parameter-less items. http-typesLike Query, but with  instead of  (UTF8-encoded). http-typesA sequence of s. http-types7An item from the query string, split up into two parts.The second part should be  if there was no key-value separator after the query item name. http-typesConvert  to . http-typesConvert  to a .If you want a question mark (?() added to the front of the result, use . http-typesConvert  to  (leniently decoding the UTF-8). http-typesParse a  from a . See  for details.  .  http-typesConvert  to . http-typesRenders the given  into a Builder.If you want a question mark (?() added to the front of the result, use . http-typesRenders the given  into a .If you want a question mark (?() added to the front of the result, use . http-typesRender the given  into a  ByteString.If you want a question mark (?() added to the front of the result, use . http-typesSplit out the query string into a list of keys and values. A few importants points:The result returned is still bytestrings, since we perform no character decoding here. Most likely, you will want to use UTF-8 decoding, but this is left to the user of the library.4Percent decoding errors are ignored. In particular, "%Q" will be output as "%Q". It decodes '+' characters to ' '  http-typesSame functionality as  , but with the option to decode '+' characters to ' ' or to preserve any '+' encountered.If you want to replace any '+' with a space, use . http-typesBreak the second bytestring at the first occurrence of any bytes from the first bytestring, discarding that byte. http-typesParse  from a  ByteString. This uses ) under the hood, and will transform any  values into an empty . http-typesPercent-encoding for URLs.This will substitute every byte with its percent-encoded equivalent unless:'The byte is alphanumeric. (i.e. one of  [A-Za-z0-9])The byte is one of the  listed in the first argument. http-typesPercent-encoding for URLs.Like , but only makes the . http-typesPercent-encoding for URLs. In short:2if you're encoding (parts of) a path element, use .2if you're encoding (parts of) a query string, use .In-depth explanationThis will substitute every byte with its percent-encoded equivalent unless: The byte is alphanumeric. (i.e. A-Z, a-z, or 0-9)The byte is either a dash '-', an underscore '_', a dot '.' , or a tilde '~'If " is used, the following will also not be percent-encoded:colon ':' , at sign '@' , ampersand '&', equals sign '=' , plus sign '+', dollar sign '$' or a comma ',' http-typesPercent-decoding.If you want to replace any '+' with a space, use . http-types:Encodes a list of path segments into a valid URL fragment..This function takes the following three steps:UTF-8 encodes the characters.#Prepends each segment with a slash.5Performs percent-encoding on all characters that are not:alphanumeric (i.e. A-Z and a-z) digits (i.e. 0-9)a dash '-', an underscore '_', a dot '.' , or a tilde '~' For example:*encodePathSegments ["foo", "bar1", "~baz"]"/foo/bar1/~baz")encodePathSegments ["foo bar", "baz/bin"]"/foo%20bar/baz%2Fbin"encodePathSegments [" "]"/%D7%A9%D7%9C%D7%95%D7%9D"Huge thanks to  Jeremy Shaw who created the original implementation of this function in web-routes and did such thorough research to determine all correct escaping procedures.  http-typesLike  , but without the initial slash. http-types8Parse a list of path segments from a valid URL fragment.0Will also decode any percent-encoded characters. http-types3Extract whole path (path segments + query) from a  0http://tools.ietf.org/html/rfc2616#section-5.1.2RFC 2616 Request-URI.Though a more accurate description of this function's behaviour is that it removes the domain/origin if the string starts with an HTTP protocol. (i.e. http:// or https://)?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqqrstuvwxyz{|}~(http-types-0.12.4-8sVzaiF2LjrERDtipkARMDNetwork.HTTP.Types.HeaderNetwork.HTTP.Types.MethodNetwork.HTTP.Types.StatusNetwork.HTTP.Types.URINetwork.HTTP.Types.QueryLikeNetwork.HTTP.Types.VersionNetwork.HTTP.Types ByteRanges ByteRange ByteRangeFromByteRangeFromToByteRangeSuffixResponseHeadersRequestHeaders HeaderNameHeaderhAccepthAcceptCharsethAcceptEncodinghAcceptLanguage hAcceptRangeshAgehAllowhAuthorization hCacheControl hConnectionhContentEncodinghContentLanguagehContentLengthhContentLocation hContentMD5 hContentRange hContentTypehDatehETaghExpecthExpireshFromhHosthIfMatchhIfModifiedSince hIfNoneMatchhIfRangehIfUnmodifiedSince hLastModified hLocation hMaxForwardshPragmahProxyAuthenticatehProxyAuthorizationhRangehReferer hRetryAfterhServerhTEhTrailerhTransferEncodinghUpgrade hUserAgenthVaryhViahWWWAuthenticatehWarninghContentDisposition hMIMEVersionhCookie hSetCookiehOriginhPreferhPreferenceAppliedrenderByteRangeBuilderrenderByteRangerenderByteRangesBuilderrenderByteRangesparseByteRanges$fShowByteRange $fEqByteRange$fOrdByteRange$fDataByteRange$fGenericByteRange StdMethodGETPOSTHEADPUTDELETETRACECONNECTOPTIONSPATCHMethod methodGet methodPost methodHead methodPut methodDelete methodTrace methodConnect methodOptions methodPatch parseMethod renderMethodrenderStdMethod$fReadStdMethod$fShowStdMethod $fEqStdMethod$fOrdStdMethod$fEnumStdMethod$fBoundedStdMethod $fIxStdMethod$fGenericStdMethod$fDataStdMethodStatus statusCode statusMessagemkStatus status100 continue100 status101switchingProtocols101 status200ok200 status201 created201 status202 accepted202 status203nonAuthoritative203 status204 noContent204 status205resetContent205 status206partialContent206 status300multipleChoices300 status301movedPermanently301 status302found302 status303 seeOther303 status304notModified304 status305 useProxy305 status307temporaryRedirect307 status308permanentRedirect308 status400 badRequest400 status401unauthorized401 status402paymentRequired402 status403 forbidden403 status404 notFound404 status405methodNotAllowed405 status406notAcceptable406 status407proxyAuthenticationRequired407 status408requestTimeout408 status409 conflict409 status410gone410 status411lengthRequired411 status412preconditionFailed412 status413requestEntityTooLarge413 status414requestURITooLong414 status415unsupportedMediaType415 status416requestedRangeNotSatisfiable416 status417expectationFailed417 status418 imATeapot418 status422unprocessableEntity422 status426upgradeRequired426 status428preconditionRequired428 status429tooManyRequests429 status431requestHeaderFieldsTooLarge431 status500internalServerError500 status501notImplemented501 status502 badGateway502 status503serviceUnavailable503 status504gatewayTimeout504 status505httpVersionNotSupported505 status511 networkAuthenticationRequired511statusIsInformationalstatusIsSuccessfulstatusIsRedirectionstatusIsClientErrorstatusIsServerError$fBoundedStatus $fEnumStatus $fOrdStatus $fEqStatus $fShowStatus $fDataStatus$fGenericStatusPartialEscapeQueryPartialEscapeQueryItem EscapeItemQEQN SimpleQuerySimpleQueryItem QueryTextQuery QueryItemqueryTextToQueryrenderQueryTextqueryToQueryTextparseQueryTextsimpleQueryToQueryrenderQueryBuilder renderQueryrenderSimpleQuery parseQueryparseQueryReplacePlusparseSimpleQueryurlEncodeBuilder urlEncode urlDecodeencodePathSegmentsencodePathSegmentsRelativedecodePathSegments extractPath encodePath decodePathrenderQueryPartialEscaperenderQueryBuilderPartialEscape$fShowEscapeItem$fEqEscapeItem$fOrdEscapeItemQueryValueLike toQueryValue QueryKeyLike toQueryKey QueryLiketoQuery$fQueryKeyLike[]$fQueryKeyLikeText$fQueryKeyLikeByteString$fQueryKeyLikeByteString0$fQueryValueLikeMaybe$fQueryValueLike[]$fQueryValueLikeText$fQueryValueLikeByteString$fQueryValueLikeByteString0 $fQueryLike[]$fQueryLike[]0 HttpVersion httpMajor httpMinorhttp09http10http11http20$fShowHttpVersion$fEqHttpVersion$fOrdHttpVersion$fDataHttpVersion$fGenericHttpVersionbytestring-0.11.3.1 Data.ByteString.Builder.InternalBuilderData.ByteString.Internal ByteString Rep_ByteRange Rep_StdMethodbaseGHC.EnumEnumGHC.ShowShow Rep_Status text-1.2.5.0Data.Text.InternalText GHC.MaybeNothingghc-prim GHC.TypesTrue breakDiscardurlEncodeBuilder'GHC.WordWord8FalseData.ByteString.Lazy.InternalGHC.BaseStringRep_HttpVersion