úÎ#š$’òm      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f g h i j k l  None0"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkKmnopqrst(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone0"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkß webgear-server7Constraint that proves that all the traits in the list ts are present in the list qs. webgear-server&Constraint that proves that the trait t- is present somewhere in the list of traits ts. webgear-server0A value linked with a type-level list of traits.webgear-server%Retrive the value from a linked valuewebgear-server1Constraint for functions that use multiple traitswebgear-server Result of a  operationwebgear-serverA  is an optional attribute t associated with a value a.The Ž function validates the presence of the trait for a given value. Checking the presence of the trait can optionally modify the value as well.webgear-server Type of the associated attributewebgear-serverType of check failureswebgear-server0Checks the presence of the associated attribute.webgear-server#Link a value with the trivial traitwebgear-server@Attempt to link an additional trait with an already linked valuewebgear-server.Remove the leading trait from the linked valuewebgear-server@Combination of many traits all of which are present for a value.webgear-serverfA trivial trait that is always present and whose attribute does not carry any meaningful information.   (c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgk6$ !webgear-serverYA middleware that manipulates only the response traits and leaves the request unchanged."webgear-serverYA middleware that manipulates only the request traits and leaves the response unchanged.#webgear-serveriA middleware takes a handler as input and produces another handler that usually adds some functionality.JA middleware can do a number of things with the request handling such as:6Change the request traits before invoking the handler.@Change the response traits before passing it back to its caller.>Use the linked value of any of the request or response traits.Change the response body.$webgear-serverƒA handler is a function from a request to response in a monadic context. Both the request and the response can have linked traits.The type level list req› contains all the traits expected to be present in the request. The handler will produce a response that satisfies all the traits in the type level list res.%webgear-server.A response sent from the server to the client.OThe response contains a status, optional headers and an optional body of type a.'webgear-serverResponse status code(webgear-serverResponse headers)webgear-serverOptional response body*webgear-server!Get the value of a request header+webgear-server*Get request with an updated URL path info.,webgear-server-Convert a WebGear response to a WAI Response.-webgear-server#Create or update a response header. !"#$%&'()*+,- +*%&'(),-$#"!(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgk=˜.webgear-serverA typeclass implemented by all u1s to convert them from type level to term level./webgear-serverConvert t to term level.0webgear-server1Failure to match method against an expected value4webgear-serverA + for capturing the HTTP method of a request./012344./0123(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkE?webgear-server$Failure in extracting a header valueCwebgear-serverA " for ensuring that a header named s has value t.Dwebgear-server$Failure in extracting a header valueGwebgear-serverA " for capturing a header with name s7 in a request or response and convert it to some type t via v. ?@ABCDEFG GDEFC?@AB(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkQËPwebgear-server4HTTP request routing with short circuiting behavior.Qwebgear-server=Mark the current route as rejected, alternatives can be triedRwebgear-server7Short-circuit the current handler and return a responseSwebgear-server(The monad transformer stack for routing.The w, provides short-circuiting behaviour for Q and R. In case of Q, a x% value is returned and in case of R, a Response ByteString is returned.The y) wrapper is provided to get instances of z and { for S.Twebgear-server1Convert a routable handler into a plain function.@This function is typically used to convert WebGear routes to a |.PQRSTSPQRT(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkY!Vwebgear-serverGA middleware to check whether the request has a specified HTTP method.=Typically this would be used with a type application such as: method @GET handler>It is also idiomatic to use the template haskell quasiquoter  ? in cases where both HTTP method and path needs to be matched.VV(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgk_ Wwebgear-serverA middleware to check that the Content-Type header in the request has a specific value. It will fail the handler if the header did not match.Typical usage: .requestContentType @"application/json" handlerWW(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkaİ}~(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgki>Xwebgear-serverFailure to extract a [[webgear-serverDA path variable that is extracted and converted to a value of type val. The tagM is usually a type-level symbol (string) to uniquely identify this variable.\webgear-serverZA path component which is literally matched against the request but discarded after that.XYZ[\\[XYZ (c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkl˙bwebgear-serverA 1 for converting a JSON request body into a value.bb (c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkvhdwebgear-serverPA middleware to parse the request body as JSON and convert it to a value via a  instance.Usage for a type t which has a  instance: jsonRequestBody @t handlerewebgear-server3A middleware that converts the response that has a € instance to a  response.TThis will also set the "Content-Type" header of the response to "application/json".Usage for a type t which has a € instance: jsonResponseBody @t handlerdede (c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgkŠèfwebgear-server)A middleware that literally matches path s. The symbol s{ could contain one or more parts separated by a forward slash character. The route will be rejected if there is no match.]For example, the following code could be used to match the URL path "a/b/c" and then invoke handler: path @"a/b/c" handlergwebgear-serverIA middleware that captures a path variable from a single path component.3The value captured is converted to a value of type val via vO. The route will be rejected if the value is not found or cannot be converted.KFor example, the following code could be used to read a path component as ‚2 tagged with the symbol "objId", and then invoke handler: pathVar @"objId" @Int handlerhwebgear-serverAProduces middleware(s) to match an optional HTTP method and path.-This quasiquoter can be used in several ways: [match|a/b/c] is equivalent to f @"a/b/c"[match|a/b/objId:Int/d] is equivalent to f @"a/b" . g @"objId" @Int . f "d"@[match|GET a/b/c] is equivalent to V @GET $ f @"a/b/c"atch|GET a/b/objId:Int/d] is equivalent to V @GET . f @"a/b" . g @"objId" @Int . f @"d"fghfgh (c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgk1iwebgear-serverRespond with a 200 OKjwebgear-serverRespond with a 400 Bad Requestkwebgear-serverRespond with a 404 NotFoundlwebgear-serverRespond with a 204 NoContent VWdefghijkliljk(c) Raghu Kaippully, 2020MPL-2.0rkaippully@gmail.comNone/"#$&',-./01456789:;<=>?@ACEHMPSUVX_`fgk’îƒ !"#$%&'()*+,-./01234567889:;<=>?@ABBCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u v w  x y z { | } ~  €  ‚ ƒ„…†‡ˆ‰Š‹ŒŽ‘’“’”•–—˜™š›™œžŸ Ħ˘£¤webgear-server-0.1.0-inplace WebGear.Types WebGear.TraitWebGear.Trait.MethodWebGear.Trait.Header WebGear.RouteWebGear.Middlewares.MethodWebGear.Middlewares.HeaderWebGear.Trait.PathWebGear.Trait.BodyWebGear.Middlewares.BodyWebGear.Middlewares.PathWebGear.MiddlewaresPaths_webgear_servermatch WebGear.UtilWebGearLwai-3.2.2.1-01e9f99109d5e19ff6ff02b990fda403768f56b0a5a60950eed8ae963b3e06e1Network.Wai.InternalgetRequestBodyChunkrequestBodyLength queryStringpathInfo remoteHostisSecurerequestHeaders httpVersion requestMethodRequestHaveHas traitValueLinkedunlinkTraits CheckResult CheckSuccess CheckFailTraitValFailchecklinkzerolinkplus linkminus $fTrait[]:am $fTrait[][]am$fHaskt: $fHasTYPEt:$fReadCheckResult$fShowCheckResult$fEqCheckResultResponseMiddlewareRequestMiddleware MiddlewareHandlerResponse respStatus respHeadersrespBody requestHeader setPathInfo waiResponseaddResponseHeader IsStdMethod toStdMethodMethodMismatchexpectedMethod actualMethodMethod$fIsStdMethodStdMethodPATCH$fIsStdMethodStdMethodOPTIONS$fIsStdMethodStdMethodCONNECT$fIsStdMethodStdMethodTRACE$fIsStdMethodStdMethodDELETE$fIsStdMethodStdMethodPUT$fIsStdMethodStdMethodHEAD$fIsStdMethodStdMethodPOST$fIsStdMethodStdMethodGET$fTraitTYPEMethodRequestmHeaderMismatchexpectedHeader actualHeader HeaderMatch HeaderFailHeaderNotFoundHeaderParseErrorHeader$fTraitTYPEHeaderRequestm$fTraitTYPEHeaderMatchRequestm$fReadHeaderFail$fShowHeaderFail$fEqHeaderFail$fEqHeaderMismatch$fReadHeaderMismatch$fShowHeaderMismatch MonadRouter rejectRoute failHandlerRouterTrunRoute$fMonadRouterExceptTmethodrequestContentType PathVarFailPathVarNotFoundPathVarParseErrorPathVarPath$fTraitTYPEPathRequestm$fTraitTYPEPathVarRequestm$fEqPathVarFail$fShowPathVarFail$fReadPathVarFailJSONRequestBody"$fTraitTYPEJSONRequestBodyRequestmjsonRequestBodyjsonResponseBodypathpathVarok badRequestnotFound noContentversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameRhttp-types-0.12.3-998b8fc2e00e09ec1dad268cd44c1ad1e9670ab79514d0c0b5280a5fd70d3795Network.HTTP.Types.Method StdMethodVhttp-api-data-0.4.1.1-c476314801ec5a08bc9067555dd882f8656afe6a940f4396043750be71b74cd8Web.Internal.HttpApiDataFromHttpApiDatatransformers-0.5.6.2Control.Monad.Trans.ExceptExceptTbase GHC.MaybeNothingData.SemigroupFirstGHC.Base Alternative MonadPlus Network.Wai Application takeWhileMsplitOnNaeson-1.4.7.1-d3a59a7357d2ce39e2a398d1f3961e5cb680fca5a0a91b1ffb233bcf3a5a5f04Data.Aeson.Types.FromJSONFromJSONData.Aeson.Types.ToJSONToJSONbytestring-0.10.10.0Data.ByteString.Lazy.Internal ByteStringghc-prim GHC.TypesInt