!n       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     Safe1;=>?l= http-typesRFC 2616 Byte ranges (set). http-types!RFC 2616 Byte range (individual).!Negative indices are not allowed! http-typesResponse Headers http-typesRequest Headers http-types Header name http-typesHeader  http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html  http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html  http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html  http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html  http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html  http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html! http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html" http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html# http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html$ http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html% http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html& http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html' http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html( http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html) http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html* http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html+ http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html, http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html- http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html. http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html/ http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html0 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html1 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html2 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html3 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html4 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html5 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html6 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html7 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html8 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html9 http-typesHTTP Header names according to 6http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html: http-typesHTTP Header names according to -https://tools.ietf.org/html/rfc6265#section-4; http-typesHTTP Header names according to -https://tools.ietf.org/html/rfc6265#section-4< http-typesHTTP Header names according to #https://tools.ietf.org/html/rfc6454= http-typesHTTP Header names according to #https://tools.ietf.org/html/rfc7240> http-typesHTTP Header names according to #https://tools.ietf.org/html/rfc7240C 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  !"#$%&'()*+,-./0123456789:;<=>?@ABCD  !"#$%&'<(=>)*+,-./0123456789:;?@ABCSafe1xH http-typesYHTTP standard method (as defined by RFC 2616, and PATCH which is defined by RFC 5789).R http-typesHTTP method (flat string type).S http-typesHTTP Method constants.T http-typesHTTP Method constants.U http-typesHTTP Method constants.V http-typesHTTP Method constants.W http-typesHTTP Method constants.X http-typesHTTP Method constants.Y http-typesHTTP Method constants.Z http-typesHTTP Method constants.[ http-typesHTTP Method constants.\ http-typesConvert a method  ByteString to a H if possible.] http-types!Convert an algebraic method to a  ByteString.^ http-types Convert a H to a  ByteString.HIJKLMNOPQRSTUVWXYZ[\]^RSTUVWXYZ[HIJKLMNOPQ\]^Safe1gf http-types HTTP Status. Only the h is used for comparisons. Please use j6 to create status codes from code and message, or the . instance or the status code constants (like p:). There might be additional record members in the future.2Note that the Show instance is only for debugging.j http-types-Create a Status from status code and message.k http-types Continue 100l http-types Continue 100m http-typesSwitching Protocols 101n http-typesSwitching Protocols 101o http-typesOK 200p http-typesOK 200q http-types Created 201r http-types Created 201s http-types Accepted 202t http-types Accepted 202u http-types!Non-Authoritative Information 203v http-types!Non-Authoritative Information 203w http-typesNo Content 204x http-typesNo Content 204y http-typesReset Content 205z 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 http-typesSuccessful class http-typesRedirection class http-typesClient Error class http-typesServer Error classjfghijklmnopqrstuvwxyz{|}~jfghijklmnopqrstuvwxyz{|}~Safe  http-types1Query with some chars that should not be escaped.General form: a=b&c=d:e+f&g=h http-types Query item http-types8For some URIs characters must not be URI encoded, e.g. '+' or ':' in >q=a+language:haskell+created:2009-01-01..2009-02-01&sort=stars The character list unreservedPI instead of unreservedQS would solve this. But we explicitly decide what part to encode. This is mandatory when searching for '+': q=%2B+language:haskell. http-types?Simplified Query type without support for parameter-less items. http-typesDSimplified Query item type without support for parameter-less items. http-typesLike Query, but with  instead of  (UTF8-encoded). http-typesQuery.General form: a=b&c=d+, but if the value is Nothing, it becomes a&c=d. http-types Query item http-typesConvert  to . http-typesConvert  to a . http-typesConvert  to  (leniently decoding the UTF-8). http-typesParse  from a . See  for details. http-typesConvert  to . http-typesConvert  to a Builder. http-typesConvert  to  ByteString. http-typesConvert  to  ByteString. http-typesTSplit 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  with the option to decode '+' characters to ' ' or preserve '+' http-typesrBreak the second bytestring at the first occurrence of any bytes from the first bytestring, discarding that byte. http-typesParse  from a  ByteString. http-typesPercent-encoding for URLs. http-types!Percent-encoding for URLs (using ). http-typesPercent-encoding for URLs. http-typesPercent-decoding. 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.CPerforms percent encoding on all unreserved characters, as well as :@=+$,#Prepends each segment with a slash. For example: .encodePathSegments [\"foo\", \"bar\", \"baz\"]"/foo/bar/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-types7Like encodePathSegments, but without the initial slash. http-types8Parse a list of path segments from a valid URL fragment. http-types3Extract whole path (path segments + query) from a  0http://tools.ietf.org/html/rfc2616#section-5.1.2RFC 2616 Request-URI.extractPath "/path""/path"*extractPath "http://example.com:8080/path""/path" extractPath "http://example.com""/"extractPath """/" http-types,Encode a whole path (path segments + query). http-types,Decode a whole path (path segments + query). http-typesConvert  to  ByteString. http-typesConvert  to a Builder.  http-typesprepend a question mark? http-typesprepend a question mark? http-typesprepend question mark? http-typesprepend question mark? http-typesIWhether input is in query string. True: Query string, False: Path element http-typesWhether to decode '+' to ' ' http-typesThe ByteString to encode as URL http-typesThe encoded URL http-typesWhether to decode '+' to ' ' http-typesprepend question mark? http-typesprepend a question mark? Safe;= http-typesLTypes which, in a Query-like key-value list, are used in the Value position. http-typesJTypes which, in a Query-like key-value list, are used in the Key position. http-types0Types which can, and commonly are, converted to  are in this class.2You can use lists of simple key value pairs, with  (strict, or lazy: ), , or  as the key/value types. You can also have the value type lifted into a Maybe to support keys without values; and finally it is possible to put each pair into a Maybe for key-value pairs that aren't always present. http-types Convert to .Safe1  http-types HTTP Version.=Note that the Show instance is intended merely for debugging.  http-typesHTTP 0.9 http-typesHTTP 1.0 http-typesHTTP 1.1 http-typesHTTP 2.0          Safe !#%&+,.3:?@ABCHIJKLMNOPQRSTUVWXYZ[\]^fghijklmnopqrstuvwxyz{|}~     RSTUVWXYZ[HIJKLMNOPQ\]^     fghijklmnopqrstuvwxyz{|}~ :!#%&+,.3?@ABC      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~      !" #$%& '"()*(http-types-0.12.2-BvzRqBLz3NU4qnHCTxZUQNNetwork.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 StdMethodGETPOSTHEADPUTDELETETRACECONNECTOPTIONSPATCHMethod methodGet methodPost methodHead methodPut methodDelete methodTrace methodConnect methodOptions methodPatch parseMethod renderMethodrenderStdMethod$fReadStdMethod$fShowStdMethod $fEqStdMethod$fOrdStdMethod$fEnumStdMethod$fBoundedStdMethod $fIxStdMethodStatus 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 $fShowStatusPartialEscapeQueryPartialEscapeQueryItem 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$fOrdHttpVersionbaseGHC.EnumEnum text-1.2.3.0Data.Text.InternalTextbytestring-0.10.8.2Data.ByteString.Internal ByteString Data.ByteString.Builder.InternalBuilder breakDiscardurlEncodeBuilder'Data.ByteString.Lazy.InternalGHC.BaseString