GWnon-portable (uses FFI) experimentallemmih@gmail.com& FHandle a single CGI request, or FastCGI requests in an infinite loop. @ This function only returns normally if it was a CGI request. & This lets you use the same program E as either a FastCGI or CGI program, depending on what the server  treats it as. KHandle a single FastCGI or CGI request. This lets you use the same program E as either a FastCGI or CGI program, depending on what the server  treats it as. #True if it was a FastCGI request,  False if CGI. -Handle FastCGI requests in an infinite loop. !Handle a single FastCGI request. Like !, but uses the FastCGI interface % and forks off a new thread (using ) for every request. "Max number of concurrent threads. How to fork a request. "Max number of concurrent threads.  !"=Data.ByteString.Lazy.hGetContentsN generalized to arbitrary  reading functions. #$%1Split a list at the first occurence of a marker. < Do not include the marker in any of the resulting lists. 8 If the marker does not occur in the list, the entire $ input with be in the first list. &'g()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcbdbefgfhfifjfkflfmfnfnopoqorososototououvwvxvyvzv{v|v}~~~~~~fastcgi-3001.0.2.2Network.FastCGIrunFastCGIorCGIrunOneFastCGIorCGI runFastCGI runOneFastCGIrunFastCGIConcurrentrunFastCGIConcurrent' fcgx_finish_r fcgx_accept_rfcgx_initrequest fcgx_init fcgx_finish fcgx_accept fcgx_putStr fcgx_getStr fcgx_isCGI FCGX_RequestEnviron StreamPtr FCGX_Stream oneRequest handleRequestcgi-3001.1.8.1 Network.CGIrunCGIbaseControl.ConcurrentforkOS oneRequestMT acceptRequest finishRequestpeekInpeekOut_peekErrpeekEnvpsPutStrfcgxPutCStringLensRead fcgxGetBufbuildByteString testReturnenvironToTablesplitBylogMutexlog setStatus setHeader deleteCookie setCookie readCookie getCookie getBodyFPSgetBody getInputNames getInputsFPS getInputs readInputgetInputContentTypegetInputFilenamegetMultiInputFPS getMultiInput getInputFPSgetInput requestURIqueryURIprogURIrequestAcceptLanguagerequestAcceptEncodingrequestAcceptCharset requestAccept requestHeaderrequestContentLengthrequestContentType remoteUserauthType remoteAddr remoteHost queryString scriptNamepathTranslatedpathInfo requestMethod serverPort serverNamegetVarsgetVarWithDefaultgetVaroutputInternalServerErroroutputMethodNotAllowedoutputNotFound outputErroroutputException handleErrorsredirect outputNothing outputFPSoutputNetwork.CGI.CompatconnectToCGIScriptpwrapperwrapperNetwork.CGI.Cookie newCookie cookieSecure cookiePath cookieDomain cookieExpires cookieValue cookieNameCookieNetwork.CGI.Accept negotiateAccept AcceptableCharsetContentEncodingLanguageNetwork.CGI.MonadhandleExceptionCGItryCGIcatchCGIthrowCGICGICGITMonadCGINetwork.CGI.Protocol urlDecode formDecode urlEncode formEncodelogCGI CGIResultNetwork.CGI.HeadershowContentTypeparseContentType ctParameters ctSubtypectType ContentTypexhtml-3000.2.0.0Text.XHtml.InternalsHtml mtl-1.1.1.0Control.Monad.TransMonadIOliftIO