h,d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1.8None+"%&)*-/1478:;<=>n   None+"%&)*-/1478:;<=>*  None, "%&)*-/1478:;<=>  None+"%&)*-/1478:;<=>   None+"%&)*-/1478:;<=>L-A Word32 and a LibPQ representation of an OIDA Postgresql type info None+"%&)*-/1478:;<=>/An error during the decoding of a specific row.Appears on the attempt to parse more columns than there are in the result."Appears on the attempt to parse a NULL as some value.Appears when a wrong value parser is used. Comes with the error details.An error with a command result.An error reported by the DB.The database returned an unexpected result. Indicates an improper statement or a schema mismatch.An error of the row reader, preceded by the indexes of the row and column.An unexpected amount of rows. (An error of some command in the session. An error on the client-side, with a message generated by the "libpq" library. Usually indicates problems with connection. !Some error with a command result. $Error during execution of a session. Error during the execution of a query. Comes packed with the query template and a textual representation of the provided params.)Error during the execution of a pipeline.Code=. The SQLSTATE code for the error. It's recommended to use < 9http://hackage.haskell.org/package/postgresql-error-codes; the "postgresql-error-codes" package> to work with those.Message. The primary human-readable error message(typically one line). Always present.Details. An optional secondary error message carrying more detail about the problem. Might run to multiple lines.Hint. An optional suggestion on what to do about the problem. This is intended to differ from detail in that it offers advice (potentially inappropriate) rather than hard facts. Might run to multiple lines.Position. Error cursor position as an index into the original statement string. Positions are measured in characters not bytes.  SQL template.3Parameters rendered as human-readable SQL literals.Error details.Error details.   None+"%&)*-/1478:;<=>None+"%&)*-/1478:;<=>7Encoder of some representation of a parameters product. None+"%&)*-/1478:;<=>7None+"%&)*-/1478:;<=>0,Composite or row-types encoder.Generic array encoder.Here's an example of its usage: someParamsEncoder ::  [[Int64]] someParamsEncoder =  ( (5 (9   (9   (8 ( ))))))  Please note that the PostgreSQL IN keyword does not accept an array, but rather a syntactical list of values, thus this encoder is not suited for that. Use a value = ANY($1) condition instead.Value encoder.Extensional specification of nullability over a generic encoder.7Encoder of some representation of a parameters product.Has instances of ,  and , which you can use to compose multiple parameters together. E.g., someParamsEncoder :: , (Int64, Maybe Text) someParamsEncoder = (   ( ))  (   (  )) :As a general solution for tuples of any arity, instead of  and !, consider the functions of the  contrazip family from the "contravariant-extras" package. E.g., here's how you can achieve the same as the above: someParamsEncoder :: + (Int64, Maybe Text) someParamsEncoder =  contrazip2 ( ( )) ( (  )) Here's how you can implement encoders for custom composite types: data Person = Person { name :: Text, gender :: Gender, age :: Int } data Gender = Male | Female personParams ::  Person personParams = (name   (  ))  (gender   ( genderValue))  ( . age   ( )) genderValue ::  Gender genderValue = 2 genderText   where genderText gender = case gender of Male -> "male" Female -> "female" No parameters. Same as  and .Lift a single parameter encoder, with its nullability specified, associating it with a single placeholder.6Specify that an encoder produces a non-nullable value.2Specify that an encoder produces a nullable value. Encoder of BOOL values. Encoder of INT2 values. Encoder of INT4 values. Encoder of INT8 values. Encoder of FLOAT4 values. Encoder of FLOAT8 values. Encoder of NUMERIC values. Encoder of CHAR values.Note that it supports Unicode values and identifies itself under the TEXT OID because of that.  Encoder of TEXT values.! Encoder of BYTEA values." Encoder of DATE values.# Encoder of  TIMESTAMP values.$ Encoder of  TIMESTAMPTZ values.% Encoder of TIME values.& Encoder of TIMETZ values.' Encoder of INTERVAL values.( Encoder of UUID values.) Encoder of INET values.* Encoder of JSON values from JSON AST.+ Encoder of JSON values from raw JSON., Encoder of JSON) values from raw JSON as lazy ByteString.- Encoder of JSONB values from JSON AST.. Encoder of JSONB values from raw JSON./ Encoder of JSONB) values from raw JSON as lazy ByteString.0 Encoder of OID values.1 Encoder of NAME values.2Given a function, which maps a value into a textual enum label used on the DB side, produces an encoder of that value.3 Variation of 2 with unknown OID. This function does not identify the type to Postgres, so Postgres must be able to derive the type from context. When you find yourself in such situation just provide an explicit type in the query using the :: operator.4Identifies the value with the PostgreSQL's "unknown" type, thus leaving it up to Postgres to infer the actual type of the value.The value transimitted is any value encoded in the Postgres' Text data format. For reference, see the  https://www.postgresql.org/docs/10/static/protocol-overview.html#PROTOCOL-FORMAT-CODESFormats and Format Codes) section of the Postgres' documentation.Warning:4 Do not use this as part of composite encoders like 5 since it is the only encoder that doesn't use the binary format.5+Lift an array encoder into a value encoder.6.Lift a composite encoder into a value encoder.7Lift a value encoder of element into a unidimensional array encoder of a foldable value.?This function is merely a shortcut to the following expression: (5 . 9   . 8) You can use it like this: 4vectorOfInts :: Value (Vector Int64) vectorOfInts = 7 ( ) >Please notice that in case of multidimensional arrays nesting 7 encoder won't work. You have to explicitly construct the array encoder using 5.8Lifts a  encoder into an  encoder.9Encoder of an array dimension, which thus provides support for multidimensional arrays.Accepts:7An implementation of the left-fold operation, such as Data.Foldable. $, which determines the input value.1A component encoder, which can be either another 9 or 8.:Single field of a row-type.25!6"982:7)'*+,-./10 %#$&43(None+"%&)*-/1478:;<=>1},5!6"982:7)'*+,-./10 %#$&43(, !"#$%&'()*+,-./1023457689:None+"%&)*-/1478:;<=>23None+"%&)*-/1478:;<=>35Next value, decoded using the provided value decoder.5Next value, decoded using the provided value decoder.None+"%&)*-/1478:;<=>3None+"%&)*-/1478:;<=>4Parse a single result.None+"%&)*-/1478:;<=>4None+"%&)*-/1478:;<=>4None+"%&)*-/1478:;<=>G2;7Composable decoder of composite values (rows, records).<A generic array decoder.Here's how you can use it to produce a specific array value decoder: x :: = [[Text]] x = f (j  (j  (k (J T)))) =Decoder of a value.>Extensional specification of nullability over a generic decoder.?Decoder of an individual row, which gets composed of column value decoders.E.g.: x :: ?) (Maybe Int64, Text, TimeOfDay) x = (,,)  (I . K) O  (I . J) T  (I . J) Y @Decoder of a query result.A Decode no value from the result.Useful for statements like INSERT or CREATE.B7Get the amount of rows affected by such statements as UPDATE or DELETE.C!Exactly one row. Will raise the  error if it's any other.DFoldl multiple rows.EFoldr multiple rows.FMaybe one row or none.G)Zero or more rows packed into the vector.,It's recommended to prefer this function to H$, since it performs notably better.H'Zero or more rows packed into the list.I=Lift an individual value decoder to a composable row decoder.J5Specify that a decoder produces a non-nullable value.K1Specify that a decoder produces a nullable value.LDecoder of the BOOL values.MDecoder of the INT2 values.NDecoder of the INT4 values.ODecoder of the INT8 values.PDecoder of the FLOAT4 values.QDecoder of the FLOAT8 values.RDecoder of the NUMERIC values.SDecoder of the CHAR/ values. Note that it supports Unicode values.TDecoder of the TEXT values.UDecoder of the BYTEA values.VDecoder of the DATE values.WDecoder of the  TIMESTAMP values.XDecoder of the  TIMESTAMPTZ values.NOTICE4Postgres does not store the timezone information of  TIMESTAMPTZ. Instead it stores a UTC value and performs silent conversions to the currently set timezone, when dealt with in the text format. However this library bypasses the silent conversions and communicates with Postgres using the UTC values directly.YDecoder of the TIME values.ZDecoder of the TIMETZ values.Unlike in case of  TIMESTAMPTZ4, Postgres does store the timezone information for TIMETZ. However the Haskell's "time" library does not contain any composite type, that fits the task, so we use a pair of   and  - to represent a value on the Haskell's side.[Decoder of the INTERVAL values.\Decoder of the UUID values.]Decoder of the INET values.^Decoder of the JSON values into a JSON AST._Decoder of the JSON values into a raw JSON .`Decoder of the JSONB values into a JSON AST.aDecoder of the JSONB values into a raw JSON .b*Lift a custom value decoder function to a = decoder.cRefine a value decoder, lifting the possible error to the session level.dA generic decoder of HSTORE values.8Here's how you can use it to construct a specific value: +x :: Value [(Text, Maybe Text)] x = hstore  eGiven a partial mapping from text to value, produces a decoder of that value.fLift an < decoder to a = decoder.gLift a value decoder of element into a unidimensional array decoder producing a list.?This function is merely a shortcut to the following expression: (f . j Control.Monad. . k) >Please notice that in case of multidimensional arrays nesting g decoder won't work. You have to explicitly construct the array decoder using f.hLift a value decoder of element into a unidimensional array decoder producing a generic vector.?This function is merely a shortcut to the following expression: (f . j Data.Vector.Generic. . k) >Please notice that in case of multidimensional arrays nesting h decoder won't work. You have to explicitly construct the array decoder using f.iLift a ; decoder to a = decoder.jA function for parsing a dimension of an array. Provides support for multi-dimensional arrays.Accepts:An implementation of the  replicateM function (Control.Monad.,  Data.Vector.&), which determines the output value.9A decoder of its components, which can be either another j or k.kLift a = decoder into an <$ decoder for parsing of leaf values.lLift a = decoder into a ;) decoder for parsing of component values.:fLUSIibVjkelPQDEd]MNO[^_`agAJKRcHFGBCTYWXZ\h<;>@?=None+"%&)*-/1478:;<=>H2fLUSIibVjkelPQDEd]MNO[^_`agAJKRcHFGBCTYWXZ\h<;>@?=2@ABCFGHDE?I>JK=LMNOPQRSTUVWXYZ[\]^_`afghidebcIB None+"%&)*-/1478:;<=>ILocal statement key.!None+"%&)*-/1478:;<=>J,"None+"%&)*-/1478:;<=>Km;All settings encoded in a single byte-string according to  http://www.postgresql.org/docs/9.4/static/libpq-connect.html#LIBPQ-CONNSTRINGthe PostgreSQL format.nEncode a host, a port, a user, a password and a database into the PostgreSQL settings byte-string.nm#None+"%&)*-/1478:;<=>Mgo4Possible details of the connection acquistion error.p$A single connection to the database.qAcquire a connection using the provided settings encoded according to the PostgreSQL format.rRelease the connection.s Execute an operation on the raw libpq $%.*The access to the connection is exclusive.qrspoNone+"%&)*-/1478:;<=>MqrsnpompoqrmnsNone+"%&)*-/1478:;<=>WtSpecification of a strictly single-statement query, which can be parameterized and prepared. It encapsulates the mapping of parameters and results in association with an SQL template.Following is an example of a declaration of a prepared statement with its associated codecs.  selectSum :: t$ (Int64, Int64) Int64 selectSum = t sql encoder decoder True where sql = "select ($1 + $2)" encoder = (  Encoders.& (Encoders.' Encoders.())  (  Encoders.& (Encoders.' Encoders.( )) decoder = Decoders.) (Decoders.* (Decoders.' Decoders.()) The statement above accepts a product of two parameters of type  ' and produces a single result of type  .vRefine the result of a statement, causing the running session to fail with the UnexpectedResult' error in case of a refinement failure.This function is especially useful for refining the results of statements produced with  +http://hackage.haskell.org/package/hasql-ththe "hasql-th" library.u SQL template.Must be formatted according to the Postgres standard, with any non-ASCII characters of the template encoded using UTF-8. The parameters must be referred to using the positional notation, as in the following: $1, $2, $3 and etc. These references must be used in accordance with the order in which the value encoders are specified in the parameters encoder.Parameters encoder.Decoder of result.0Flag, determining whether it should be prepared. Set it to   if your application has a limited amount of queries and doesn't generate the SQL dynamically. This will boost the performance by allowing Postgres to avoid reconstructing the execution plan each time the query gets executed.5Note that if you're using proxying applications like  pgbouncer, such tools may be incompatible with prepared statements. So do consult their docs or just set it to   to stay on the safe side. It should be noted that starting from version 1.21.0  pgbouncer2 now does provide support for prepared statements.vtutuv+None+"%&)*-/1478:;<=>aVy8Composable abstraction over the execution of queries in  https://www.postgresql.org/docs/current/libpq-pipeline-mode.htmlthe pipeline mode.It allows you to issue multiple queries to the server in much fewer network transactions. If the amounts of sent and received data do not surpass the buffer sizes in the driver and on the server it will be just a single roundtrip. Typically the buffer size is 8KB.This execution mode is much more efficient than running queries directly from ,, because in session every statement execution involves a dedicated network roundtrip. An obvious question rises then: why not execute all queries like that?In situations where the parameters depend on the result of another query it is impossible to execute them in parallel, because the client needs to receive the results of one query before sending the request to execute the next. This reasoning is essentially the same as the one for the difference between  and . That's why y does not have the  instance. To execute y lift it into , via -.ExamplesInsert-Many or Batch-InsertYou can use pipeline to turn a single-row insert query into an efficient multi-row insertion session. In effect this should be comparable in performance to issuing a single multi-row insert statement.6Given the following definition in a Statements module: insertOrder :: . OrderDetails OrderId *You can lift it into the following session "insertOrders :: [OrderDetails] -> ,# [OrderId] insertOrders orders = -% $ forM orders $ \order -> / order Statements.insertOrder Combining Queries7Given the following definitions in a Statements module: selectOrderDetails :: .5 OrderId (Maybe OrderDetails) selectOrderProducts :: .< OrderId [OrderProduct] selectOrderFinancialTransactions :: . OrderId [FinancialTransaction] .You can combine them into a session using the  ApplicativeDo extension as follows: )selectEverythingAboutOrder :: OrderId -> , (Maybe OrderDetails, [OrderProduct], [FinancialTransaction]) selectEverythingAboutOrder orderId = - $ do details <- /7 orderId Statements.selectOrderDetails products <- /< orderId Statements.selectOrderProducts transactions <- / orderId Statements.selectOrderFinancialTransactions pure (details, products, transactions) z'Execute a statement in pipelining mode.zy0None+"%&)*-/1478:;<=>c{A batch of actions to be executed in the context of a database connection.|8Executes a bunch of commands on the provided connection.}Possibly a multi-statement query, which however cannot be parameterized or prepared, nor can any results of it be collected.~2Execute a statement by providing parameters to it.Execute a pipeline.|}~{None+"%&)*-/1478:;<=>c|}~   {{}~|  None+"%&)*-/1478:;<=>dzyyz 1 2 3 4 5 6 7 1  8 9 5 : ; <=>?@AB&'CDEF(GHIJKLMNOPQRSTUVWXYZ[\]^_`abcde=>?@fghi)jklmn*'CDEF(GHIJKLMNOPQRSTUVXYopq]`rsadce"t"u#v#%#w#x#y..z{|+}+/0,0~00/0-D                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               gff  %      D   L J     M  G H  T E  F  (  R U X       \ I  [                K   P N O Q       S            ??AAAAAAd>>>=A?~??~ff  hi~ggp~~==d~>>z>=gf?     !!!!!!!!!!!!!!#%+~+}0,hasql-1.8-inplace Hasql.SessionHasql.EncodersHasql.DecodersHasql.ConnectionHasql.StatementHasql.Pipelinehasql Hasql.PreludeHasql.LibPq14.MappingsHasql.LibPq14.Ffi Hasql.LibPq14Hasql.PostgresTypeInfo Hasql.ErrorsHasql.Encoders.ValueHasql.Encoders.ParamsHasql.Encoders.ArrayHasql.Encoders.AllHasql.Decoders.ValueHasql.Decoders.RowHasql.Decoders.ResultHasql.Decoders.ResultsHasql.Decoders.CompositeHasql.Decoders.ArrayHasql.Decoders.AllErrorsUnexpectedAmountOfRows GenericVector replicateM Control.Monad Data.VectorHasql.CommandsHasql.PreparedStatementRegistryHasql.IOHasql.SettingsHasql.Connection.CoreLibPQ Connectionparam nonNullableint8 singleRowcolumnHasql.Pipeline.CoreSessionpipeline Statement statementHasql.Session.CoreRowError EndOfInputUnexpectedNull ValueError ResultError ServerErrorUnexpectedResult CommandError ClientError SessionError QueryError PipelineError CompositeArrayValue NullableOrNotParamsnoParamsnullableboolint2int4float4float8numericchartextbyteadate timestamp timestamptztimetimetzintervaluuidinetjson jsonBytes jsonLazyBytesjsonb jsonbBytesjsonbLazyBytesoidnameenum unknownEnumunknownarray composite foldableArrayelement dimensionfieldRowResultnoResult rowsAffected foldlRows foldrRowsrowMaybe rowVectorrowListcustomrefinehstore listArray vectorArraySettingssettingsConnectionErroracquirereleasewithLibPQConnection refineResult$fProfunctorStatement$fFunctorStatementPipelinerunsqlbaseControl.ApplicativeoptionalControl.Concurrent forkFinallythreadWaitReadthreadWaitReadSTMthreadWaitWritethreadWaitWriteSTMControl.Concurrent.ChandupChangetChanContentsnewChanreadChan writeChanwriteList2ChanControl.Concurrent.QSemnewQSem signalQSemwaitQSemControl.Concurrent.QSemNnewQSemN signalQSemN waitQSemN Data.Char digitToIntisLetterisMarkisNumber isSeparator Data.Complexcis conjugateimagPart magnitudemkPolarphasepolarrealPart Data.Fixeddiv'divMod'mod' showFixedData.Functor.Contravariant$<>$$<>$<comparisonEquivalencedefaultComparisondefaultEquivalencephantom Data.RatioapproxRationalData.Semigroupcycle1diff mtimesDefaultSystem.IO.Unsafe unsafeFixIOSystem.Timeouttimeout Text.PrintfhPrintfprintfcontravariant-1.5.5-0b5122b0c1591c12c95dd75ff1c151cf10d8b23e6a803fe79e1141b05d36d376$Data.Functor.Contravariant.Divisiblechosen conquereddividedliftDlost ghc-internalGHC.Internal.Base$$!++<**>=<<absurdapasTypeOfassertconstflipjoinliftAliftA3liftMliftM2liftM3liftM4liftM5mapord otherwiseuntilvacuouswhenGHC.Internal.Bits bitDefaultpopCountDefaulttestBitDefaulttoIntegralSizedGHC.Internal.CharchrGHC.Internal.Conc.BoundforkOSforkOSWithUnmaskisCurrentThreadBoundrtsSupportsBoundThreadsrunInBoundThreadrunInUnboundThreadGHC.Internal.Conc.IO closeFdWithensureIOManagerIsRunningioManagerCapabilitiesChanged registerDelay threadDelayGHC.Internal.Conc.Signal runHandlers setHandlerGHC.Internal.Conc.Sync atomicallycatchSTM childHandlerdisableAllocationLimitenableAllocationLimitforkIOforkIOWithUnmaskforkOnforkOnWithUnmaskgetAllocationCountergetNumCapabilitiesgetNumProcessorsgetUncaughtExceptionHandler killThread labelThread listThreadsmkWeakThreadId myThreadIdnewTVar newTVarIOnumCapabilities numSparksparpseqreadTVar readTVarIO reportErrorreportHeapOverflowreportStackOverflowretry runSparkssetAllocationCountersetNumCapabilitiessetUncaughtExceptionHandlerthreadCapability threadStatusthrowSTMthrowTo unsafeIOToSTM writeTVaryieldGHC.Internal.Control.Arrow<<^>>^^<<^>>leftAppreturnAGHC.Internal.Control.Category<<<>>>$GHC.Internal.Control.Concurrent.MVaraddMVarFinalizer mkWeakMVar modifyMVarmodifyMVarMaskedmodifyMVarMasked_ modifyMVar_swapMVarwithMVarwithMVarMaskedGHC.Internal.Control.ExceptionallowInterruptcatches#GHC.Internal.Control.Exception.BasebracketbracketOnErrorbracket_ catchJustfinallyhandle handleJust mapException onExceptiontrytryJustGHC.Internal.Control.Monad<$!><=<>=>filterMfoldMfoldM_foreverguard mapAndUnzipMmfilter replicateM_unlesszipWithM zipWithM_!GHC.Internal.Control.Monad.ST.ImpfixSTGHC.Internal.Data.Bits!<<.!>>..<<..>>..^.oneBitsGHC.Internal.Data.BoolGHC.Internal.Data.Data constrFields constrFixity constrIndex constrRep constrTypedataTypeConstrs dataTypeName dataTypeRep fromConstr fromConstrB fromConstrM indexConstr isAlgType isNorepTypemaxConstrIndex mkCharConstr mkCharTypemkConstr mkConstrTag mkDataType mkFloatType mkIntTypemkIntegralConstr mkNoRepType mkRealConstr readConstr repConstr showConstr tyconModule tyconUQnameGHC.Internal.Data.DynamicdynAppdynApply dynTypeRepfromDyn fromDynamictoDynGHC.Internal.Data.EithereitherfromLeft fromRightisLeftisRightleftspartitionEithersrightsGHC.Internal.Data.Foldableallandanyasumconcat concatMapfindfoldlMfoldrMforM_for_mapM_ maximumBy minimumBymsumnotElemor sequenceA_ sequence_ traverse_GHC.Internal.Data.Function& applyWhenfixonGHC.Internal.Data.Functor$><$><&>voidGHC.Internal.Data.IORefatomicModifyIORefatomicWriteIORef mkWeakIORef modifyIORef modifyIORef'GHC.Internal.Data.Maybe catMaybesfromJust fromMaybeisJust isNothing listToMaybemapMaybemaybe maybeToListGHC.Internal.Data.OldList\\deletedeleteBydeleteFirstsBy dropWhileEnd elemIndex elemIndices findIndex findIndices genericDrop genericIndex genericLengthgenericReplicategenericSplitAt genericTakegroupgroupByinitsinsertinsertBy intercalate intersect intersectBy intersperse isInfixOf isPrefixOf isSuffixOflinesnubnubBy partition permutations singletonsortsortBy stripPrefix subsequencestails transposeunfoldrunionunionByunlinesunwordsunzip4unzip5unzip6unzip7wordszip4zip5zip6zip7zipWith4zipWith5zipWith6zipWith7GHC.Internal.Data.Ordclamp comparingGHC.Internal.Data.Proxy asProxyTypeOfGHC.Internal.Data.STRef modifySTRef modifySTRef'$GHC.Internal.Data.Semigroup.InternalstimesIdempotentstimesIdempotentMonoid stimesMonoidGHC.Internal.Data.Traversable fmapDefaultfoldMapDefaultfor forAccumMforM mapAccumL mapAccumM mapAccumRGHC.Internal.Data.TuplecurryfstsndswapuncurryGHC.Internal.Data.TypeablecastdecTeqT funResultTygcastgcast1gcast2hdecTheqTmkFunTy rnfTypeRep showsTypeRep splitTyConApptypeOftypeOf1typeOf2typeOf3typeOf4typeOf5typeOf6typeOf7typeRep typeRepArgstypeRepFingerprint typeRepTyCon#GHC.Internal.Data.Typeable.InternalrnfTyCon trLiftedReptyConFingerprint tyConModule tyConName tyConPackageGHC.Internal.Data.Unique hashUnique newUniqueGHC.Internal.Data.Version makeVersion parseVersion showVersionGHC.Internal.Debug.Trace flushEventLog putTraceMsgtrace traceEvent traceEventIOtraceEventWithtraceIOtraceIdtraceM traceMarker traceMarkerIO traceShow traceShowId traceShowM traceShowWith traceStack traceWithGHC.Internal.ErrerrorerrorWithoutStackTrace undefinedGHC.Internal.ExceptionthrowGHC.Internal.Exception.TypeaddExceptionContextsomeExceptionContextGHC.Internal.Exts groupWithsortWithGHC.Internal.Float floatToDigitsfromRat showFloat#GHC.Internal.Foreign.ForeignPtr.ImpmallocForeignPtrArraymallocForeignPtrArray0 newForeignPtrnewForeignPtrEnvGHC.Internal.Foreign.PtrfreeHaskellFunPtr intPtrToPtr ptrToIntPtr ptrToWordPtr wordPtrToPtrGHC.Internal.ForeignPtraddForeignPtrFinalizeraddForeignPtrFinalizerEnvcastForeignPtrfinalizeForeignPtrmallocForeignPtrmallocForeignPtrBytesnewForeignPtr_plusForeignPtrtouchForeignPtrwithForeignPtrGHC.Internal.IO annotateIOcatchevaluategetMaskingState interruptiblemaskmask_stToIOthrowIOuninterruptibleMaskuninterruptibleMask_GHC.Internal.IO.ExceptionallocationLimitExceeded assertErrorasyncExceptionFromExceptionasyncExceptionToExceptionblockedIndefinitelyOnMVarblockedIndefinitelyOnSTMcannotCompactFunctioncannotCompactMutablecannotCompactPinned heapOverflowioError ioException stackOverflowunsupportedOperationuntangle userErrorGHC.Internal.IO.HandlehCloseGHC.Internal.IO.UnsafeunsafeDupablePerformIOunsafeInterleaveIOunsafePerformIOGHC.Internal.IORefatomicModifyIORef'newIORef readIORef writeIORefGHC.Internal.List!!!?breakcycledrop dropWhilefilterfoldl1'headinititerateiterate'lastlookuprepeat replicatereversescanlscanl'scanl1scanrscanr1spansplitAttailtake takeWhileunsnocunzipunzip3zipzip3zipWithzipWith3GHC.Internal.MVar isEmptyMVar newEmptyMVarnewMVarnewStablePtrPrimMVarputMVarreadMVartakeMVar tryPutMVar tryReadMVar tryTakeMVarGHC.Internal.NumsubtractGHC.Internal.NumericreadBinreadDec readFloatreadHexreadIntreadOct readSignedshowBin showEFloat showFFloat showFFloatAlt showGFloat showGFloatAlt showHFloatshowHexshowInt showIntAtBaseshowOctGHC.Internal.PtralignPtr castFunPtrcastFunPtrToPtrcastPtrcastPtrToFunPtrminusPtr nullFunPtrnullPtrplusPtrGHC.Internal.Readlex lexDigits lexLitChar readLitChar readParenGHC.Internal.Real%^^^ denominatoreven fromIntegralgcdlcm numeratorodd realToFrac showSignedGHC.Internal.STrunSTGHC.Internal.STRefnewSTRef readSTRef writeSTRefGHC.Internal.Show intToDigitshowChar showLitChar showParen showStringshowsGHC.Internal.StablecastPtrToStablePtrcastStablePtrToPtrdeRefStablePtr freeStablePtr newStablePtrGHC.Internal.StableName eqStableNamehashStableNamemakeStableNameGHC.Internal.System.EnvironmentgetArgsgetEnvgetEnvironment getProgName lookupEnvsetEnvunsetEnvwithArgs withProgName.GHC.Internal.System.Environment.ExecutablePathexecutablePathgetExecutablePathGHC.Internal.System.Exitdie exitFailure exitSuccessexitWithGHC.Internal.System.IO appendFilegetChar getContentsgetLineinteractprintputCharputStrputStrLnreadFilereadIOreadLn writeFileGHC.Internal.System.IO.ErroralreadyExistsErrorTypealreadyInUseErrorTypeannotateIOError catchIOErrordoesNotExistErrorType eofErrorType fullErrorTypeillegalOperationErrorTypeioeGetErrorStringioeGetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeSetErrorStringioeSetErrorTypeioeSetFileName ioeSetHandleioeSetLocationisAlreadyExistsErrorisAlreadyExistsErrorTypeisAlreadyInUseErrorisAlreadyInUseErrorTypeisDoesNotExistErrorisDoesNotExistErrorType isEOFErrorisEOFErrorType isFullErrorisFullErrorTypeisIllegalOperationisIllegalOperationErrorTypeisPermissionErrorisPermissionErrorTypeisResourceVanishedErrorisResourceVanishedErrorType isUserErrorisUserErrorType mkIOError modifyIOErrorpermissionErrorTyperesourceVanishedErrorType tryIOError userErrorTypeGHC.Internal.System.MemperformBlockingMajorGC performGCperformMajorGCperformMinorGC)GHC.Internal.Text.ParserCombinators.ReadP readP_to_S readS_to_P,GHC.Internal.Text.ParserCombinators.ReadPrec readP_to_Prec readPrec_to_P readPrec_to_S readS_to_PrecGHC.Internal.Text.ReadreadreadsGHC.Internal.UnicodegeneralCategoryisAlpha isAlphaNumisAscii isAsciiLower isAsciiUpper isControlisDigit isHexDigitisLatin1isLower isLowerCase isOctDigitisPrint isPunctuationisSpaceisSymbolisUpper isUpperCasetoLowertoTitletoUpperGHC.Internal.Unsafe.Coerce unsafeCoerce unsafeCoerce#unsafeCoerceAddrunsafeCoerceUnliftedunsafeEqualityProofGHC.Internal.Word bitReverse16 bitReverse32 bitReverse64 bitReverse8 byteSwap16 byteSwap32 byteSwap64ghc-prim GHC.Classes&&not|| GHC.Magicinline GHC.TuplegetSolo forMFromZero_ forMToZero_ strictConstime-1.12.2-ab16#Data.Time.Calendar.CalendarDiffDays calendarDay calendarMonth calendarWeek calendarYearscaleCalendarDiffDaysData.Time.Calendar.DaysaddDaysdiffDays periodAllDays periodFromDay periodLength periodToDayperiodToDayValidData.Time.Calendar.Gregorian YearMonthDayaddGregorianDurationClipaddGregorianDurationRollOveraddGregorianMonthsClipaddGregorianMonthsRollOveraddGregorianYearsClipaddGregorianYearsRollOverdiffGregorianDurationClipdiffGregorianDurationRollOver fromGregorianfromGregorianValidgregorianMonthLength showGregorian toGregorianData.Time.Calendar.OrdinalDate isLeapYearData.Time.Calendar.TypesAprilAugustBeforeCommonEra CommonEraDecemberFebruaryJanuaryJulyJuneMarchMayNovemberOctober SeptemberData.Time.Calendar.Week dayOfWeek dayOfWeekDifffirstDayOfWeekOnAfter weekAllDays weekFirstDay weekLastDay!Data.Time.Clock.Internal.DiffTimediffTimeToPicosecondspicosecondsToDiffTimesecondsToDiffTime(Data.Time.Clock.Internal.NominalDiffTime nominalDaynominalDiffTimeToSecondssecondsToNominalDiffTime#Data.Time.Clock.Internal.SystemTimegetTime_resolution Data.Time.Clock.Internal.UTCDiff addUTCTime diffUTCTimeData.Time.Clock.POSIXgetCurrentTimeData.Time.Format.Format.Class formatTimeData.Time.Format.LocaledefaultTimeLocaleiso8601DateFormatrfc822DateFormatData.Time.Format.Parse parseTimeMparseTimeMultipleMparseTimeOrError readPTime readSTime-Data.Time.LocalTime.Internal.CalendarDiffTimecalendarTimeDayscalendarTimeTimescaleCalendarDiffTime&Data.Time.LocalTime.Internal.LocalTime addLocalTime diffLocalTimelocalTimeToUT1localTimeToUTCut1ToLocalTimeutcToLocalTime&Data.Time.LocalTime.Internal.TimeOfDaydayFractionToTimeOfDaydaysAndTimeOfDayToTimelocalToUTCTimeOfDaymakeTimeOfDayValidmiddaymidnight pastMidnight sinceMidnighttimeOfDayToDayFractiontimeOfDayToTimetimeToDaysAndTimeOfDaytimeToTimeOfDayutcToLocalTimeOfDay%Data.Time.LocalTime.Internal.TimeZonegetCurrentTimeZone getTimeZonehoursToTimeZoneminutesToTimeZonetimeZoneOffsetStringtimeZoneOffsetString'utc&Data.Time.LocalTime.Internal.ZonedTime getZonedTimeutcToLocalZonedTimeutcToZonedTimezonedTimeToUTCtransformers-0.6.1.1-6dc7Control.Monad.Trans.ContcontevalCont evalContT liftLocalmapContmapContTresetresetTrunContshiftTwithCont withContTControl.Monad.Trans.ExceptcatchEexceptfinallyE mapExcept mapExceptT runExcept runExceptTthrowE withExcept withExceptTControl.Monad.Trans.MaybeexceptToMaybeT hoistMaybe liftCallCC liftCatch liftListenliftPass mapMaybeTmaybeToExceptTControl.Monad.Trans.Reader mapReader mapReaderT runReader withReader withReaderT Control.Monad.Trans.State.Strict evalState evalStateT execState execStateTmapState mapStateTrunState withState withStateT!Control.Monad.Trans.Writer.Strict execWriter execWriterT mapWriter mapWriterT runWriterlazyGHC.Primcoerceseq WrappedMonad WrapMonad unwrapMonadChanQSemQSemNControl.Monad.IO.ClassMonadIOliftIOData.Bifunctor BifunctorbimapfirstsecondComplex:+CentiDeciE0E1E12E2E3E6E9FixedMkFixed HasResolution resolutionMicroMilliNanoPicoUniData.Functor.ComposeCompose getCompose Comparison getComparison Contravariant>$ contramap EquivalencegetEquivalenceOpgetOp Predicate getPredicateArgArgMaxArgMinMaxgetMaxMingetMin WrappedMonoid WrapMonoid unwrapMonoidTimeoutbytestring-0.12.1.0-f8cdData.ByteString.Internal.Type ByteString Decidablechooselose Divisibleconquerdividedlist-1.0-69791490b154baa3327a4c2563b7d2f35ddd2c83b23f2a1bc96b18af6af90a85Data.DList.InternalDList Alternative<|>emptymanysome Applicative*><*<*>liftA2pureFunctor<$fmapMonad>>>>=return MonadPlusmplusmzeroMonoidmappendmconcatmemptyNonEmpty:| Semigroup<>sconcatstimesVoidBits.&..|.bitbitSize bitSizeMaybeclearBit complement complementBitisSignedpopCountrotaterotateLrotateRsetBitshiftshiftLshiftRtestBit unsafeShiftL unsafeShiftRxorzeroBits FiniteBitscountLeadingZeroscountTrailingZeros finiteBitSize HandlerFunSignal BlockReasonBlockedOnBlackHoleBlockedOnExceptionBlockedOnForeignCall BlockedOnMVarBlockedOnOther BlockedOnSTMSTMTVarThreadId ThreadStatus ThreadBlocked ThreadDiedThreadFinished ThreadRunningArrow&&&***arr ArrowApplyapp ArrowChoice+++leftright||| ArrowLooploop ArrowMonad ArrowPlus<+> ArrowZero zeroArrowKleisli runKleisliCategory.idHandlerNestedAtomically NoMethodErrorNonTerminationPatternMatchFail RecConError RecSelError RecUpdError TypeErrorGHC.Internal.Control.Monad.Fail MonadFailfailGHC.Internal.Control.Monad.FixMonadFixmfixAndgetAndIffgetIffIorgetIorXorgetXorConIndexConstr ConstrRep AlgConstr CharConstr FloatConstr IntConstrData dataCast1 dataCast2 dataTypeOfgfoldlgmapMgmapMogmapMpgmapQgmapQigmapQlgmapQrgmapTgunfoldtoConstrDataRepAlgRepCharRepFloatRepIntRepNoRepDataTypeFixityInfixPrefixDynamicEitherLeftRightFoldableelemfoldfoldMapfoldMap'foldlfoldl'foldl1foldrfoldr'foldr1lengthmaximumminimumnullproductsumGHC.Internal.Data.Functor.ConstConstgetConst"GHC.Internal.Data.Functor.IdentityIdentity runIdentityGHC.Internal.Data.MonoidApgetApFirstgetFirstLastgetLastDowngetDownKProxyProxyAllgetAllAltgetAltAnygetAnyDualgetDualEndoappEndoProduct getProductSumgetSumGHC.Internal.Data.StringIsString fromString TraversablemapMsequence sequenceAtraverseGHC.Internal.Data.Type.Equality:~:Refl:~~:HReflTypeRepTypeableUniqueVersion versionBranch versionTagsGHC.Internal.EnumBoundedmaxBoundminBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumpredsucctoEnum ErrorCallErrorCallWithLocationArithExceptionDenormal DivideByZeroLossOfPrecisionOverflowRatioZeroDenominator Underflow ExceptionbacktraceDesireddisplayException fromException toExceptionExceptionWithContext SomeExceptionFloating**acosacoshasinasinhatanatanhcoscoshexpexpm1loglog1mexplog1plog1pexplogBasepisinsinhsqrttantanh RealFloatatan2 decodeFloat encodeFloatexponent floatDigits floatRadix floatRangeisDenormalizedisIEEE isInfiniteisNaNisNegativeZero scaleFloat significandIntPtrWordPtrGHC.Internal.Foreign.StorableStorable alignmentpeek peekByteOff peekElemOffpoke pokeByteOff pokeElemOffsizeOfFinalizerEnvPtr FinalizerPtr ForeignPtrGHC.Internal.Functor.ZipListZipList getZipListGHC.Internal.GenericsGenericFilePath MaskingStateMaskedInterruptibleMaskedUninterruptibleUnmaskedAllocationLimitExceededArrayExceptionIndexOutOfBoundsUndefinedElementAssertionFailedAsyncException HeapOverflow StackOverflow ThreadKilled UserInterruptBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMCompactionFailedDeadlockExitCode ExitFailure ExitSuccessFixIOExceptionIOError IOErrorType AlreadyExistsEOF HardwareFaultIllegalOperationInappropriateType InterruptedInvalidArgument NoSuchThing OtherErrorPermissionDenied ProtocolError ResourceBusyResourceExhaustedResourceVanished SystemError TimeExpiredUnsatisfiedConstraintsUnsupportedOperation UserError IOExceptionioe_description ioe_errno ioe_filename ioe_handle ioe_locationioe_typeSomeAsyncExceptionGHC.Internal.IO.Handle.TypesHandleIORefGHC.Internal.IntInt16Int32Int64Int8GHC.Internal.IsListIsListItemfromList fromListNtoListGHC.Internal.IxIxinRangeindexrange rangeSizeMVarPrimMVarNum*+-abs fromIntegernegatesignumGHC.Internal.OverloadedLabelsIsLabel fromLabelFunPtrPtrreadList readsPrec Fractional/ fromRationalrecipIntegraldivdivModmodquotquotRemrem toIntegerRatioRationalReal toRationalRealFracceilingfloorproperFractionroundtruncateSTSTRefShowshowshowList showsPrecShowS StablePtr StableNameReadPReadSReadPrecGeneralCategoryClosePunctuationConnectorPunctuationControlCurrencySymbolDashPunctuation DecimalNumber EnclosingMark FinalQuoteFormat InitialQuote LetterNumber LineSeparatorLowercaseLetter MathSymbolModifierLetterModifierSymbolNonSpacingMark NotAssignedOpenPunctuation OtherLetter OtherNumberOtherPunctuation OtherSymbolParagraphSeparator PrivateUseSpaceSpacingCombiningMark SurrogateTitlecaseLetterUppercaseLetterUnsafeEquality UnsafeReflWord16Word32Word64Word8Eq/===Ord<<=>>=comparemaxmin GHC.TypesIOOrderingEQGTLTTyConhashable-1.4.6.0-1441c4a9bf61230a126f116c7d92115a670d96793104200e086e8e81f2318ca7Data.Hashable.ClassHashablehash hashWithSaltByteStringBuilderLazyByteStringLazyText TextBuildermtl-2.3.1-4b15Control.Monad.Error.Class MonadError catchError throwErrorControl.Monad.Reader.Class MonadReaderasklocalreaderprofunctors-5.6.2-506cf75a45d4a8311611c231c36c00b86f8a1cd0f43abc590baea984ceb331e4Data.Profunctor.Unsafe Profunctor#..#dimaplmaprmapscientific-0.3.8.0-ade0caf20ebb925700aefbf3edfe864d45ca6df7cacb66649d343e92bb8926b3Data.Scientific Scientifictext-2.1.1-638eb535db0a5a38c3b12acb6cba378d7d82e1a8d59f77ebcaba639162f96c81Data.Text.InternalTextCalendarDiffDayscdDayscdMonthsDayModifiedJulianDaytoModifiedJulianDay DayPeriod dayPeriodperiodFirstDay periodLastDay DayOfMonth MonthOfYearYear DayOfWeekFridayMondaySaturdaySundayThursdayTuesday WednesdayDiffTimeNominalDiffTime Data.Time.Clock.Internal.UTCTimeUTCTimeutctDay utctDayTime&Data.Time.Clock.Internal.UniversalTime UniversalTime ModJulianDategetModJulianDate FormatTime TimeLocaleamPmdateFmt dateTimeFmtknownTimeZonesmonths time12FmttimeFmtwDaysData.Time.Format.Parse.Class ParseTimeCalendarDiffTimectMonthsctTime LocalTimelocalDaylocalTimeOfDay TimeOfDaytodHourtodMintodSecTimeZonetimeZoneMinutes timeZoneNametimeZoneSummerOnly ZonedTimezonedTimeToLocalTime zonedTimeZoneControl.Monad.Trans.Class MonadTransliftContContTrunContTExceptExceptTMaybeT runMaybeTReaderReaderT runReaderTStateStateT runStateTWriterWriterT runWriterTuuid-types-1.0.5.1-91de2349097b7144ca29c72af20601c5292f386b4a7619fd5beb1dc256dd9fc2Data.UUID.Types.InternalUUIDvector-0.13.1.0-d2de33a5f565fb03ed4d5c2e37ea6fa6a13253776f3dac776bdc2bf92497dbc2Vector ghc-bignumGHC.Num.IntegerIntegerStringGHC.Internal.MaybeMaybeJustNothing RealWorldSoloBoolFalseTrueChar CoercibleDoubleFloatIntListWord~ decodeBooldecodeExecStatusdecodePipelineStatusencodeExecStatus ExecStatus BadResponse CommandOkCopyBothCopyInCopyOut EmptyQuery FatalError NonfatalError PipelineAbort PipelineSync SingleTupleTuplesOkPipelineStatusPipelineAborted PipelineOff PipelineOnenterPipelineModeexitPipelineModepipelineStatus pipelineSync resultStatussendFlushRequestpostgresql-libpq-0.10.1.0-38df50957ffe07dbb77889e61631ab981503f443da7406d69f7d9d1d9b4638c2Database.PostgreSQL.LibPQ backendPIDcancelclientEncoding cmdStatus cmdTuples connectPoll connectStart connectdbconnectionNeedsPasswordconnectionUsedPassword consumeInputdbdescribePortaldescribePrepareddisableNoticeReportingenableNoticeReporting errorMessageescapeByteaConnescapeIdentifierescapeStringConnexec execParams execPreparedfformatfinishflushfmodfnamefnumberfsizeftable ftablecolftype getCancel getCopyData getNotice getResult getisnull getlengthgetvalue getvalue'hostisBusyisNullConnection isnonblocking libpqVersionloCloseloCreatloCreateloExportloImportloImportWithOidloOpenloReadloSeekloTell loTruncateloUnlinkloWritenewNullConnectionnfieldsnotifiesnparamsntuplesoptionsparameterStatus paramtypepassportprepareprotocolVersion putCopyData putCopyEnd resStatus resetPoll resetStartresultErrorFieldresultErrorMessagesendDescribePortalsendDescribePrepared sendPrepare sendQuerysendQueryParamssendQueryPrepared serverVersionsetClientEncodingsetErrorVerbositysetSingleRowModesetnonblockingsocketstatustoColumntoRowtransactionStatus unescapeByteaunsafeFreeResultuserDatabase.PostgreSQL.LibPQ.Oid invalidOidCancelColumnCol CopyInResult CopyInErrorCopyInOkCopyInWouldBlock CopyOutResult CopyOutDone CopyOutError CopyOutRowCopyOutWouldBlock FlushStatus FlushFailedFlushOk FlushWritingLoFdDatabase.PostgreSQL.LibPQ.Enums ConnStatusConnectionAuthOkConnectionAwaitingResponse ConnectionBadConnectionMade ConnectionOkConnectionSSLStartupConnectionSetEnvConnectionStarted FieldCode DiagContextDiagInternalPositionDiagInternalQueryDiagMessageDetailDiagMessageHintDiagMessagePrimary DiagSeverityDiagSourceFileDiagSourceFunctionDiagSourceLine DiagSqlstateDiagStatementPositionBinary PollingStatus PollingFailed PollingOkPollingReadingPollingWritingTransactionStatus TransActive TransIdle TransInError TransInTrans TransUnknown Verbosity ErrorsDefault ErrorsTerse ErrorsVerbose"Database.PostgreSQL.LibPQ.Internal Database.PostgreSQL.LibPQ.NotifyNotify notifyBePid notifyExtra notifyRelnameOidOIDPTIabstimeaclitem binaryUnknownboxbpcharcidcidrcirclecstring daterange gtsvector int2vector int4range int8rangelinelsegmacaddrmkOIDmkPTImoneynumrange oidvectorpathpointpolygonrecord refcursorregclass regconfig regdictionaryregoper regoperatorregproc regprocedureregtypereltime textUnknowntid tintervaltsquerytsrange tstzrangetsvector txid_snapshotvarbitvarcharxidxml oidFormatoidPQ oidWord32 ptiArrayOIDptiOID unsafePTIunsafePTIWithShowcompilePreparedStatementDatacompileUnpreparedStatementData nullableValuerenderReadablevaluecolumnsMetadataprinter serializersize NonNullableNullabledecoder decoderFn nonNullValueEnvcheckExecStatus serverErrorsingleunexpectedResultvector clientErrordropRemaindersResultsasBytessetEncodersToUTF8setMinClientMessagesToWarningCommandsLocalKeynewupdatePreparedStatementRegistryacquireConnection acquirePreparedStatementRegistrycheckConnectionStatuscheckServerVersion checkedSendgetIntegerDatetimesgetPreparedStatementKey getResultsinitConnectionreleaseConnectionsendNonparametricStatementsendParametricStatementsendPreparedParametricStatement!sendUnpreparedParametricStatement