M-14      !"#$%&'()*+,-./0123None!"'(345>KLNJs describe collections of HTTP endpoints accessible at various segmented s.An \ describes a root API which responds only to requests with empty paths. It matches on HTTP s which demand 4s, 5s, and %s. differs from T in that it can only choose between possible methods and automatically provides an 6 response. s consist of many sub-%s which are attempted sequentially.  choices6 expresses this sequential search along a set of sub- choices.  enables the use of standard  s within an Z. These cannot be examined further through type analysis, but they are a common use case. !Qualify an API using a series of  "segments" Generalized1 path segments match against data in the request.[Matches if the request has a non-empty remaining path and the next segment matches exactlyLMatches if the request has a given header and its value matches exactly (!)~Matches if the request has a non-empty remaining path. The next segment is "captured", provided to the server implementation.6Always matches, "capturing" the value of a header, or 7 if the header fails to exist.rAlways matches, "captures" the remaining path segments as a list of text values. May just capture the empty list.A 3 is a single HTTP verb response handled at a given . In order to complete a Handler'Us operation it may demand data from the request such as headers or the request body. A "core"  definition which describes the 4Y it responds to along with a set of response headers and a chance to attach a response %. Augment a + to include requirements of a request body. Augment a 2 to include requirements of request header values. Augment a 5 to include requirements of the request query string!5Describes an output from an API under a given status.%5 responses may opt to include a response body or not.&aReturn a response body by specifying a set of content-types and a value to derive the body from.'A response with an empty body(5Extra syntax-sugar for representing type-level pairs.K  !"#$%&'(89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\7  !"#$%&'(89:;<=>?@ABCDEFG' !"%&'(  $#+  !"#$%&'(HIJKL89:;MNOPQR<=>?@STUVWABCDXYEZ[\FG (None !"'(345>KLN )*+,-./0123 )*+,-./012 )*+,-3./012)*+,-./0123None]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~465      !"#$%&'  !"#$%&'(89:;<=>?@ABCDEFG(         !!"#$%&'()*+,-+./+,0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX+YZ+Y[+Y\+Y]+Y^+Y_+Y`+Ya+Yb+Yc+Yd+Ye+Yf+Yg+Yh+Yi+Yj+Yk+Yl+Ym+Yn+Yo+Yp+Yq+Yr+Ys+Yt+Yu+Yv+Yw+Yx+Yy+Yz+Y{+Y|+Y}+Y~+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+,+,+,+,+,+,+,+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.++++++++++++++++++++++++++++++++++++++++++ + + + + +++++++Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y+Y +Y!+Y"+Y#+Y$+Y%+Y&+Y'+Y(+Y)+Y*+Y++Y,+Y-+Y.+Y/+Y0+Y1+Y2+Y3+Y4+Y5+Y6+Y7+Y8+Y9+Y:+Y;+Y<+Y=+Y>+Y?+Y@+YA+YB+YC+YD+YE+YF+YG+YH+YI+YJ+YK+YL+YM+YN+YO+YN+YM+YL+YK+YJ+YI+YH+YG+YF+YE+YD+YC+YB+YA+Y@+Y?+Y>+Y=+Y<+Y;+Y:+Y9+Y8+Y7+Y6+Y5+Y4+Y3+Y2+Y1+Y0+Y/+Y.+Y-+Y,+Y++Y*+Y)+Y(+Y'+Y&+Y%+Y$+Y#+Y"+Y!+Y +Y+Y+Y+Y+Y+Y+Y+Y+Y+,P+,Q+,R+,S+,T+,0+,U+,V+,W+,W+,V+,U+,T+,S+,R+.X+.Y+.Z+.Z+.[+.\+.]+.^+._+.`+.a+.b+.c+.d+.e+.f+.g+.h+.i+.j+.k+.l+.m+.n+.o+.p+.q+.r+.s+.t+.u+.v+.w+.x+.y+.z+.{+.|+.}+.~+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.r+.q+.u+.s+.t+.x+.w+.v+.+.+.p+.o+.+.+.+.n+.m+.l+.+.k+.j+.i+.+.+.+.h+.+.g+.+.+.+.+.+.+.+.f+.e+.d+.+.+.+.c+.+.b+.+.+.a+.`+._+.~+.^+.]+.+.}+.\+.+.[+.+.y+.|+.{+.zserv_HXozdUpvexL0tNIjmzJIzrServ.ApiServ.Api.PreludeServ.Api.AnalysisWai Applicationsingl_6zuApKrG1Ok6HgOje70glLData.SingletonsSingsingSingI:>AbstractOneOfEndpointApiWildcardHeaderSegHeaderAsConstPath CaptureQueryCaptureHeaders CaptureBodyMethodHandlerRespondOutputEmptyHasBodyBody:::EndpointAnalysis verbsHandledheadersExpectedheadersEmittedinspectEndpointinspectHandler headerNames inspectVerbsheadersExpectedOf$fMonoidEndpointAnalysishttpk_Lf7obNOUVTt3ELNFKdVd0zNetwork.HTTP.Kinder.VerbVerb&Network.HTTP.Kinder.Header.Definitions HeaderNameOPTIONSbaseGHC.BaseNothing SEndpointSOneOf SAbstract:%>SConst SHeaderAsSSegSHeader SWildcardSMethod SCaptureBodySCaptureHeaders SCaptureQuerySRespondSHasBodySEmpty $fSingIApi:>$fSingIApiAbstract$fSingIApiOneOf$fSingIApiEndpointTFCo:R:SingApia$fSingIPathWildcard$fSingIPathHeader$fSingIPathSeg$fSingIPathHeaderAs$fSingIPathConstTFCo:R:SingPathp$fSingIHandlerCaptureQuery$fSingIHandlerCaptureHeaders$fSingIHandlerCaptureBody$fSingIHandlerMethodTFCo:R:SingHandlerh$fSingIOutputRespondTFCo:R:SingOutputo$fSingIBodyEmpty$fSingIBodyHasBodyTFCo:R:SingBodybNetwork.HTTP.Kinder.StatusSNetworkAuthenticationRequired SNotExtended SLoopDetectedSInsufficientStorageSVariantAlsoNegotiatesSHTTPVersionNotSupportedSGatewayTimeoutSServiceUnavailable SBadGatewaySNotImplementedSInternalServerErrorSUnavailableForLegalReasonsSRequestHeaderFieldsTooLargeSTooManyRequestsSPreconditionRequiredSUpgradeRequiredSFailedDependencySLockedSUnprocessableEntitySMisdirectedRequestSExpectationFailedSRequestedRangeNotSatisfiableSUnsupportedMediaTypeSRequestURITooLongSPayloadTooLargeSPreconditionFailedSLengthRequiredSGone SConflictSRequestTimeoutSProxyAuthenticationRequiredSNotAcceptableSMethodNotAllowed SNotFound SForbiddenSPaymentRequired SUnauthorized SBadRequestSPermanentRedirectSTemporaryRedirect SNotModified SSeeOtherSFoundSMovedPermanentlySMultipleChoicesSIMUsedSPartialContent SResetContent SNoContentSNonAuthoritiveInformation SAcceptedSCreatedSOkSSwitchingProtocols SContinue SCustomStatusSPUTSPOSTSPATCHSOPTIONSSHEADSGETSDELETESXForwardedProtoSXForwardedHostSXForwardedFor SXCsrfTokenSWarningSWWWAuthenticateSViaSVary SUserAgentSUpgradeSTransferEncodingSTrailerSTESStrictTransportSecurity SSetCookie SRetryAfterSRefererSRangeSPublicKeyPinsSProxyAuthorizationSProxyAuthenticateSPragmaSOrigin SMaxForwards SLocationSLink SLastModifiedSIfUnmodifiedSinceSIfRange SIfNoneMatchSIfModifiedSinceSIfMatchSHostSFromSExpiresSExpectSETagSDateSCookie SContentTypeSContentSecurityPolicy SContentRangeSContentLocationSContentLengthSContentLanguageSContentEncodingSContentDisposition SConnection SCacheControlSAuthorizationSAllowSAgeSAccessControlRequestMethodSAccessControlRequestHeadersSAccessControlMaxAgeSAccessControlExposeHeadersSAccessControlAllowOriginSAccessControlAllowMethodsSAccessControlAllowHeadersSAccessControlAllowCredentials SAcceptRanges SAcceptPatchSAcceptLanguageSAcceptEncodingSAcceptCharsetSAccept SCustomHeader(Network.HTTP.Kinder.Header.SerializationheaderDecodeBSheaderEncodeBSheaderEncodePair headerEncode HeaderEncodeAllHeaderEncodes headerDecode HeaderDecodeAllHeaderDecodesNetwork.HTTP.Kinder.URI uriDecodeBS uriEncode URIEncode uriDecode URIDecodeNetwork.HTTP.Kinder.QueryqueryEncodePairNotHereHereFlagQueryKeyAbsentQueryKeyValuedQueryKeyPresent QueryKeyState queryEncode QueryEncodeAllQueryEncodes queryDecode QueryDecodeAllQueryDecodesNetwork.HTTP.Kinder.CommongetRawRawNetwork.HTTP.Kinder.MediaTypenegotiatedMimeDecodenegotiatedMimeEncode decodersOf encodersOf mediaType HasMediaType mimeEncode MimeEncode mimeDecode MimeDecode AllMimeEncode AllMimeDecodeDecodeNegotiationFailureNegotiatedDecodeErrorNegotiatedDecodeNegotiatedDecodeResultgetVerVer TextPlainJSON parseStatus statusCode httpStatus SomeStatusNetworkAuthenticationRequired NotExtended LoopDetectedInsufficientStorageVariantAlsoNegotiatesHTTPVersionNotSupportedGatewayTimeoutServiceUnavailable BadGatewayNotImplementedInternalServerErrorUnavailableForLegalReasonsRequestHeaderFieldsTooLargeTooManyRequestsPreconditionRequiredUpgradeRequiredFailedDependencyLockedUnprocessableEntityMisdirectedRequestExpectationFailedRequestedRangeNotSatisfiableUnsupportedMediaTypeRequestURITooLongPayloadTooLargePreconditionFailedLengthRequiredGoneConflictRequestTimeoutProxyAuthenticationRequired NotAcceptableMethodNotAllowedNotFound ForbiddenPaymentRequired Unauthorized BadRequestPermanentRedirectTemporaryRedirect NotModifiedSeeOtherFoundMovedPermanentlyMultipleChoicesIMUsedPartialContent ResetContent NoContentNonAuthoritiveInformationAcceptedCreatedOkSwitchingProtocolsContinue CustomStatusStatus parseVerbverbNamePUTPOSTPATCHHEADGETDELETEparseHeaderName headerNameSomeHeaderNameWWWAuthenticateVaryTransferEncodingTrailerStrictTransportSecurity SetCookie RetryAfter PublicKeyPinsProxyAuthenticateLocationLink LastModifiedExpiresETagContentSecurityPolicy ContentRangeContentLocationContentLanguageContentEncodingContentDispositionAllowAge AcceptRanges AcceptPatchAccessControlAllowHeadersAccessControlAllowMethodsAccessControlAllowCredentialsAccessControlMaxAgeAccessControlExposeHeadersAccessControlAllowOrigin XCsrfTokenXForwardedProtoXForwardedHost XForwardedFor UserAgentTERefererRangeProxyAuthorizationOrigin MaxForwardsIfUnmodifiedSinceIfRange IfNoneMatchIfModifiedSinceIfMatchHostFromExpectCookie AuthorizationAccessControlRequestHeadersAccessControlRequestMethodAcceptLanguageAcceptEncoding AcceptCharsetAcceptWarningViaUpgradePragmaDate ContentType ContentLength Connection CacheControl CustomHeaderhttpm_1NUj53CrgAZAR4mGGGcqfhNetwork.HTTP.Media.QualityQuality%Network.HTTP.Media.MediaType.Internal MediaTypeNetwork.HTTP.Media.MediaTypemainTypesubType/?/.