!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~>An unrolled stack of Reader, Writer, Error, State, and Prompt.2018, Automattic, Inc.BSD3%Nathan Bloomfield (nbloomf@gmail.com) experimentalPOSIXSafeNQV7-Opaque stack of error (e ), reader (r ), writer (w ), state (s), and prompt (p ) monads.#Opaque transformer stack of error (e ), reader (r ), writer (w ), state (s), and prompt (p ) monads. Execute a ? with a specified initial state, environment, and continuation. Execute a K with a specified initial state and environment, and with a pure evaluator.Turn a  with a pure evaluator into a %; for testing with QuickCheck. Wraps . Execute a k with a specified inital state and environment, and with a monadic evaluator. In this case the inner monad m= will typically be a monad transformer over the effect monad n.Turn a ! with a monadic evaluator into a %; for testing with QuickCheck. Wraps . Execute a ? with a specified initial state, environment, and continuation. Execute a K with a specified initial state and environment, and with a pure evaluator.Turn a  with a pure evaluator into a %; for testing with QuickCheck. Wraps . Execute a M with a specified inital state and environment, and with a monadic evaluator. Turn a ! with a monadic evaluator into a %; for testing with QuickCheck. Wraps . Retrieve the environment. CRun an action with a locally adjusted environment of the same type. ORun an action with a locally adjusted environment of a possibly different type. =Retrieve the image of the environment under a given function.Retrieve the current state.Replace the state. Modify the current state lazily."Modify the current state strictly.?Retrieve the image of the current state under a given function.Write to the log./Run an action and attach the log to the result.iRun an action that returns a value and a log-adjusting function, and apply the function to the local log.4Run an action, applying a function to the local log. Inject an  into a .0Run an action, applying a function to any error.Raise an error.=Run an action, applying a handler in case of an error result.Inject an atomic effect.%Lift a computation in the base monad.  Initial state Environment Initial state EnvironmentPure effect evaluator Initial state EnvironmentPure effect evaluator Condense to  Result check Initial state EnvironmentMonadic effect evaluatorLift effects to the inner monad Initial state EnvironmentMoandic effect evaluatorLift effects to the inner monad Condense to  Result check Initial state Environment Initial state EnvironmentPure evaluator Initial state EnvironmentPure evaluatorCondense Result check Initial state EnvironmentMonadic evaluator  Initial state EnvironmentMoandic effect evaluator Condense to  Result check   &Some stuff not included in Data.Aeson.2018, Automattic, Inc.BSD3%Nathan Bloomfield (nbloomf@gmail.com) experimentalPOSIXNone?"MRepresents the kinds of errors that can occur when parsing and decoding JSON.#*A generic JSON error; try not to use this.$A failed parse.%JAn attempt to look up the value of a key that does not exist on an object.&KAn attempt to look up the value of a key on something other than an object.'A failed attempt to convert a  to some other type."#$%&'"#$%&'A mock IO monad for testing.2018, Automattic, Inc.BSD3%Nathan Bloomfield (nbloomf@gmail.com) experimentalPOSIXSafeVL (!A mapping from "handles" of type a to lists of lines.*HAbstraction of a text file consisting of a "handle" and a list of lines., File "handle"- List of lines.No files; populate with 2 or 3./3Detect whether a file with the given handle exists.0JDetect whether a file with the given handle exists and has given contents.1GRetrieve the contents of a file, or nothing if the file does not exist.2!Overwrite the contents of a file.3Append to a file.45Delete a file; if no such file exists, has no effect.5Read the first line of a file./ File handle0HandleContents1Handle2HandleContents3HandleContents4Handle5Handle not found error EOF errorHandle()*+,-./012345()*+,-./041235()*+,-.Some stuff not included in Network.HTTP.Client2018, Automattic, Inc.BSD3%Nathan Bloomfield (nbloomf@gmail.com) experimentalPOSIXNone"#T ;Non-opaque HTTP response type.BTo make type signatures nicer0Convert an opaque `Response ByteString` into an ;.^Convert response headers to a JSON value; specifically a list of objects, one for each header.CStatus 200; no headersDStatus 400; no headersEStatus 404; no headersFStatus 405; no headersGStatus 408; no headersHStatus 500; no headers;<=>?@ABCDEFGH;<=>?@AA mock IO monad for testing.2018, Automattic, Inc.BSD3%Nathan Bloomfield (nbloomf@gmail.com) experimentalPOSIXNone "#&'QV`I-State monad representing network interaction.L7Type representing the internal state of an HTTP server.OAJust enough state to mock out a basic filesystem and HTTP server.WA state monad over O.ZRetrieve the current O.[Replace the current O.\Mutate the current O strictly.]1Bump the timer by a given number of microseconds.^1970-01-01 00:00:00_+Empty filesystem and trivial HTTP responses` Throw an .a4Retrieve the internal state of the fake HTTP server.b3Replace the internal state of the fake HTTP server.c=Mutate the internal state of the fake HTTP server (strictly).!CDEFGHIJKLMNOPRQSTUVWXYZ[\]^_`abc!WXYZ[\]OPQRSTUVLMN^_IJK`abcCDEFGHIJKLMNOPQRSTUVWXY1A generic monad for expressing HTTP interactions.2018, Automattic, Inc.BSD3%Nathan Bloomfield (nbloomf@gmail.com) experimentalPOSIXNone"#&'QVPtAtomic effects} State type5Used to specify colors for user-supplied log entries.Used in the logs.Log entry typeClient-supplied error typeClient-supplied log entry typeLog typeOptions for tweaking the logs. Toggle colorToggle JSON pretty printingToggle to silence the logs Toggle for printing HTTP headerspPrinter for log entries; first argument colorizes a string, and the tuple argument is (timestamp, uid, message).QPrinter for client-supplied error type. The boolean toggles JSON pretty printing.OPrinter for client-supplied log type. the boolean toggles JSON pretty printing.Generic session environment.Handle for printing logs=Lock used to prevent race conditions when writing to the log.^Identifier string for the session; used to help match log entries emitted by the same session.Function for elevating "s to a client-supplied error type.!Client-supplied environment type. Error type.Client-supplied error type.An HTTP session returning an a, writing to a log of type W e w&, reading from an environment of type R e w r, with state of type S s, throwing errors of type E e1, performing effectful computations described by P p a.  over .An HTTP session returning an a, writing to a log of type W e w&, reading from an environment of type R e w r, with state of type S s, throwing errors of type E e1, performing effectful computations described by P p a, and with inner monad m. Execute an  session.Turn an . into a property; for testing with QuickCheck. Execute an  session.Turn an  into a ; for testing with QuickCheck.Retrieve the environment.CRun an action with a locally adjusted environment of the same type.ORun an action with a locally adjusted environment of a possibly different type.=Retrieve the image of the environment under a given function.Retrieve the current state.Replace the state."Modify the current state strictly.?Retrieve the image of the current state under a given function.ODo not export; we want to only allow writes to the log via functions that call logNow.iRun an action that returns a value and a log-adjusting function, and apply the function to the local log.4Run an action, applying a function to the local log. Inject an  into a Script.Raise an error=Run an action, applying a handler in case of an error result.Inject an atomic effect.!Lift a value from the inner monadPretty printer for errorsAlso logs the exception.Re-throws other error types.Also logs the exception.Re-throws other error types.Also logs the exception.Re-throws other error types.Also logs the exception.Re-throws other error types.Environment constructorEnvironment constructor;Noisy, in color, without parsing JSON responses, and using 1 instances for user-supplied error and log types.Noisy, in color, without parsing JSON responses, and using trivial printers for user-supplied error and log types. For testing.Convert errors to log entriesRender a log entry%Extract the user-defined log entries.State constructor(Basic evaluator for interpreting atomic  effects in .(Basic evaluator for interpreting atomic  effects in W.%All log statements should go through logNow.Write a comment to the logPause the threadWrite an entry to the logWrite a line to a handle*Write a line to a handle, using the given  as a lockRun a GET requestRun a GET? request, but do not write the request or response to the logs.Run a POST requestRun a POST? request, but do not write the request or response to the logs.Run a DELETE requestRun a DELETE? request, but do not write the request or response to the logs.Parse a  to a JSON .Object member lookup. Decode a  to some other type. Initial state EnvironmentEffect evaluatorLift effects to the inner monad Initial state EnvironmentEffect evaluatorLift effects to the inner monad Condense to  Result check Initial state EnvironmentEffect evaluator Initial state EnvironmentEffect evaluator Condense to  Result check#Computation that may raise an errorHandlerHandlerHandlerHandlerHandler"Client-supplied environment value."Client-supplied environment value.JsonHeadersEvaluator for user effects millisecondsPayloadPayloadKey name JSON object["#$%&';<=>?@ABt|uvwxyz{}~[}~tuvwxyz{|B"#$%&';<=>?@A tuvwxyz{|}~       !"#$%&'()*++,-./001123456789:;<=>?@AABCDEFGHIJKLMNNOPPQRRSTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|u}}~$  "#)script-monad-0.0.1-HjHkmthWKBXG1Csh4DGsDNControl.Monad.ScriptControl.Monad.Script.HttpData.MockIO.FileSystem Data.MockIOData.Aeson.ExtrasNetwork.HTTP.Client.ExtrasAValueScriptScriptT execScriptT checkScriptT execScriptTM checkScriptTM execScript checkScript execScriptM checkScriptMasklocal transportreadergetputmodifymodify'getstelllistenpasscensorexcepttriagethrowcatchpromptlift $fShowScriptT$fArbitraryScriptT$fFunctorScriptT$fApplicativeScriptT$fMonadScriptT JsonErrorJsonParseErrorJsonKeyDoesNotExistJsonKeyLookupOffObjectJsonConstructError FileSystemFile _fileHandle _fileContentsemptyFileSystem fileExistshasFilegetLines writeLines appendLines deleteFilereadLine $fShowFile$fArbitraryFileSystem$fShowFileSystem$fEqFileSystem$fEqFile HttpResponse_responseStatus_responseVersion_responseHeaders _responseBody_responseCookieJarUrl_200ok_400badRequest _404notFound_405methodNotAllowed_408requestTimeout_500internalServerError MockNetwork unMockNetwork MockServer unMockServer MockWorld_files_time_httpGet _httpPost _httpDelete _serverStateMockIO runMockIO getMockWorld putMockWorldmodifyMockWorldincrementTimerepochbasicMockWorlderrorMockNetwork getMockServer putMockServermodifyMockServer$fArbitraryMockNetwork$fShowMockNetwork$fFunctorMockNetwork$fApplicativeMockNetwork$fMonadMockNetwork$fCoArbitraryMockWorld$fArbitraryMockWorld$fShowMockWorld $fEqMockWorld$fArbitraryMockIO $fShowMockIO$fFunctorMockIO$fApplicativeMockIO $fMonadMockIO$fEqMockServer$fShowMockServerP HPutStrLnHPutStrLnBlocking GetSystemTime ThreadDelayHttpGetHttpPost HttpDeleteS _httpOptions _httpSession _userStateW LogOptions _logColor_logJson _logSilent _logHeaders_logEntryPrinter_printUserError _printUserLogR _logOptions _logHandle_logLock_uid_httpErrorInject_envEHttpHttpT execHttpTM checkHttpTM execHttpM checkHttpM liftHttpT printErrorthrowHttpExceptioncatchHttpExceptionthrowIOExceptioncatchIOExceptionthrowJsonErrorcatchJsonError throwError catchErrorbasicEnv trivialEnvbasicLogOptionstrivialLogOptions logEntries basicStateevalIO evalMockIOcommentwaitlogEntry hPutStrLnhPutStrLnBlockinghttpGet httpSilentGethttpPosthttpSilentPost httpDeletehttpSilentDelete parseJson lookupKeyJsonconstructFromJson $fMonoidW $fMonadHttpT$fApplicativeHttpT$fFunctorHttpT $fEqHttpVerb$fShowHttpVerb $fShowLog execScriptTC(QuickCheck-2.10.1-70P6BZcpq32G9MHTYAv406Test.QuickCheck.PropertyProperty execScriptCghc-prim GHC.TypesBoolbase Data.EitherEitherIO runScriptT#aeson-1.2.4.0-8faT9gkJvuhua3LbuR7IvData.Aeson.Types.InternalreadHttpResponsejsonResponseHeaders)http-client-0.5.13-6WgBvzxosO5D2ssrXqM4rdNetwork.HTTP.Client.Types HttpExceptionColorHttpVerbLogL_ErrorL_LogData.Functor.IdentityIdentityGHC.ShowShow errorMessage printLogWithlogNowGHC.MVarMVarbytestring-0.10.8.2Data.ByteString.Lazy.Internal ByteStringprintEntryWithRedBlueGreenYellowMagentaDELETEGETPOST L_Comment L_RequestL_SilentRequest L_ResponseL_SilentResponseL_Pause L_HttpError L_IOError L_JsonErrorE_HttpE_IOE_JsonhttpT