h$@/~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                                   Safe-Inferred None RST  "! #$%&'()*+,-./0123456789:;<=>?BA@DCFEHGIJKLMNOPQYUVXWZ[\]^RST  "! #$%&'()*+,-./0123456789:;<=>?BA@DCFEHGIJKLMNOPQYUVXW]^\[ZNone preqlEncode a Haskell String to a list of Word8 values, in UTF8 format._ba`cefdgkjihlmnopqtsruvwyxz{|}~gkjihcefd_ba`vwyxqtsrunoplm~{|}zNone <GNone ypreql1Errors that can occur in decoding a single field.preqlA decoding error with information about the row & column of the result where it occured.preqlA Postgres type with a known IDpreql4A Postgres type which we will need to lookup by nameNone #$5preqlInternal because we need IO for the libpq FFI, but we promise not to do any IO besides decoding. We don't even make network calls to Postgres in InternalDecoderpreql RowDecoder is  but not  so that we can assemble all of the OIDs before we read any of the field data sent by Postgres.preqlThe IsString instance does no validation; the limited instances discourage directly manipulating strings, with the high risk of SQL injection.  None .(c) 2013 Leon P SmithBSD3None preqlA structure representing some of the metadata regarding a PostgreSQL type, mostly taken from the pg_type table.(c) 2011-2012 Leon P SmithBSD3None }  Safe-Inferred n None >9preqlToSql a is sufficient to pass a( as parameters to a paramaterized query.preql6Types which can be encoded to a single Postgres field.preqlA  FieldEncoder for a type a consists of a function from a to it's binary representation, and an Postgres OID which tells Postgres it's type & how to decode it.preqlIf you want to encode some more specific Haskell type via JSON, it is more efficient to use  rather than this instance.preqlIf you want to encode some more specific Haskell type via JSON, it is more efficient to use  and & directly, rather than this instance.   None  #$35>preqlA  FieldDecoder for a type a consists of an OID indicating the Postgres type which can be decoded, and a parser from the binary representation of that type to the Haskell representation.preqlIf you want to encode some more specific Haskell type via JSON, it is more efficient to use  rather than this instance.preqlIf you want to encode some more specific Haskell type via JSON, it is more efficient to use  and & directly, rather than this instance.   None None =3 None #%&preql4A list of n Names beginning with the given characterpreql.Convert a rewritten SQL string to a ByteStringpreql5Given a SQL query with ${} antiquotes, splice a pair (Query p r, p) or a function p' -> (Query p r, p) if the SQL string includes both antiquote and positional parameters.The sql Quasiquoter allows passing parameters to a query by name, inside a ${} antiquote. For example: [sql| SELECT name, age FROM cats WHERE age >= ${minAge} and age < ${maxAge} |] The Haskell term within {} must be a variable in scope; more complex expressions are not supported.'Antiquotes are replaced by positional ($1, $2) parameters supported by Postgres, and the encoded values are sent with  PexecParamsMixed named & numbered parameters are also supported. It is hoped that this will be useful when migrating existing queries. For example: query $ [sql| SELECT name, age FROM cats WHERE age >= ${minAge} and age < $1 |] maxAge Named parameters will be assigned numbers higher than the highest numbered paramater placeholder.A quote with only named parameters is converted to a tuple '(Query, p)'. For example: ("SELECT name, age FROM cats WHERE age >= $1 and age < $2", (minAge, maxAge))1 If there are no parameters, the inner tuple is (), like ("SELECT * FROM cats", ()). If there are both named & numbered params, the splice is a function taking a tuple and returning  (Query, p)? where p includes both named & numbered params. For example: a -> ("SELECT name, age FROM cats WHERE age >= $1 and age < $2", (a, maxAge))None <'ppreqlA Transaction can only contain SQL queries (and pure functions).None  '(9>.| preqlSqlQuery is separate from  so that nested s are statically prevented. query" can be used directly within any > monad (running a single-statement transaction), or within a .4Users should not need to define instances, as every SQL instance implies a SqlQuery instance.preqlRun a parameterized query that returns data. The tuple argument is typically provided by the sql Quasiquoter.preql4Run a parameterized query that does not return data.preqlAn Effect class for running SQL queries. You can think of this as a context specifying a particular Postgres connection (or connection pool). A minimal instance defines withConnection.Override the remaining methods to log errors before rethrowing, or not to rethrow.preql&Run multiple queries in a transaction.preqlrunTransaction covers the most common patterns of mult-statement transactions. withConnection is useful when you want more control, or want to override the defaults that your instance defines. For example: - change the number of retries - interleave calls to other services with the Postgres transaction - ensure a prepared statement is shared among successive transactionspreqlRun a query on the specified preql3Run a Transaction with full Serializable isolation.preqlRun the provided . If it fails with a  , roll back.preql The same query methods can be used within a  Transaction . Nested  Transactions" are implemented using savepoints.preqlMost larger applications will define an instance; this one is suitable to test out the library.  None .; !"#$%&'&(&)&*+,+-!.!/!0!1!2!3!4!5!6!7898:8;8<8=8>8?8@8A8ABCDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXDYDZD[\]^_`abacacdedefgfhfifjklkmnonpnqnrstuvwxyz{|}~o                                                                                                                                                                                  preql-0.3-inplace Preql.ImportsPreql.QuasiQuoter.Raw.LexPreql.Wire.OrphansPreql.Wire.ErrorsPreql.Wire.InternalPreql.Wire.TuplesPreql.Wire.TypeInfo.TypesPreql.Wire.TypeInfo.StaticPreql.Wire.TypesPreql.Wire.ToSqlPreql.Wire.FromSqlPreql.Wire.QueryPreql.QuasiQuoter.Raw.THPreql.Effect.Internal Preql.Effect Paths_preql Data.AesonencodePostgreSQL.Binary.Encoding jsonb_bytes Preql.WirePreqlbaseGHC.Basefmap<*>pure*>FunctorData.Typeable.InternalTypeable ApplicativeData.Traversable Traversableghc-prim GHC.TypesTyConData.Bifunctorsecondfirstbimap BifunctorControl.Monad.IO.ClassliftIOMonadIOfoldMapDefault fmapDefault mapAccumR mapAccumLforMforsequencemapM sequenceAtraverseControl.Applicativeoptional unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow getZipListZipListGHC.Exception.Type Exception Data.TypeabletypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1 rnfTypeReptypeRepFingerprint typeRepTyCon typeRepArgs splitTyConAppmkFunTy funResultTygcast2gcast1gcasteqTcast showsTypeReptypeReptypeOfTypeReprnfTyContyConFingerprint tyConName tyConModule tyConPackageData.Functor.ConstgetConstConst Data.ProxyProxyData.Type.EqualityRefl:~:HRefl:~~: Data.Maybe catMaybes fromMaybe Data.Functorvoid$><&><$>liftA3liftA<**><$<*liftA2manysome<|>empty Alternativebytestring-0.10.10.0Data.ByteString.Internal ByteString text-1.2.3.2Data.Text.InternalTextvctr-0.12.1.2-39c01dee Data.VectorVectorData.Text.EncodingdecodeUtf8WithData.Text.Encoding.Error lenientDecodeAlexAcc AlexAccNone AlexAccSkip AlexLastAccAlexNone AlexLastSkip AlexReturnAlexEOF AlexErrorAlexSkip AlexTokenAlexAddrAlexA# AlexUserStatefilePathTokenSql NumberedParam HaskellParamEOFLocTokenlocunLoc AlexActionAlexunAlex AlexStatealex_posalex_inpalex_chr alex_bytesalex_scdalex_ustAlexPosnAlexPn AlexInputByte utf8Encode utf8Encode'ignorePendingBytesalexInputPrevChar alexGetByte alexStartPosalexMoverunAlex alexGetInput alexSetInput alexErroralexGetStartCodealexSetStartCodealexGetUserStatealexSetUserState alexMonadScanskipbeginandBegintoken alex_tab_size alex_base alex_table alex_check alex_deflt alex_accept alex_actionsalexInitUserState getFilePath setFilePathunLexlex'alexMonadScan'alexEOF alexError'runAlex'lexAll parseQuery' parseQuery alex_action_0 alex_action_1 alex_action_2alexIndexInt16OffAddralexIndexInt32OffAddr quickIndexalexScan alexScanUser alex_scan_tkn $fMonadAlex$fApplicativeAlex $fFunctorAlex$fShowLocToken $fShowToken $fEqToken $fOrdToken $fEqAlexPosn$fShowAlexPosn $fFromJSONOid $fToJSONOidUnlocatedFieldErrorUnexpectedNull ParseFailure$fEqUnlocatedFieldError$fShowUnlocatedFieldError FieldErrorerrorRow errorColumnfailure$fFromJSONUnlocatedFieldError$fToJSONUnlocatedFieldError$fExceptionFieldError$fEqFieldError$fShowFieldErrorPgTypeOidTypeName$fFromJSONFieldError$fToJSONFieldError $fEqPgType $fShowPgType TypeMismatchexpectedactualcolumn columnName$fFromJSONPgType$fToJSONPgType$fEqTypeMismatch$fShowTypeMismatch QueryErrorConnectionError DecoderErrorPgTypeMismatch$fFromJSONTypeMismatch$fToJSONTypeMismatch$fExceptionQueryError$fEqQueryError$fShowQueryError$fFromJSONQueryError$fToJSONQueryError DecoderState$sel:result:DecoderState$sel:row:DecoderState$sel:column:DecoderStateInternalDecoder RowDecoderQuery decodeRow getNextValue$fApplicativeRowDecoder$fFunctorRowDecoder$fShowDecoderState$fEqDecoderState $fShowQuery$fIsStringQueryalphabetderiveFromSqlTuplederiveToSqlTuple AttributeattnameatttypeTypeInfoBasicArrayRange Compositetypoid typcategorytypdelimtypnametypelem rngsubtypetyprelid attributes$fShowAttribute$fShowTypeInfostaticTypeInfoboolboolOidbyteabyteaOidcharcharOidnamenameOidint8int8Oidint2int2Oidint4int4Oidregproc regprocOidtexttextOidoidoidOidtidtidOidxidxidOidcidcidOidxmlxmlOidpointpointOidlseglsegOidpathpathOidboxboxOidpolygon polygonOidlinelineOidcidrcidrOidfloat4 float4Oidfloat8 float8Oidunknown unknownOidcircle circleOidmoneymoneyOidmacaddr macaddrOidinetinetOidbpchar bpcharOidvarchar varcharOiddatedateOidtimetimeOid timestamp timestampOid timestamptztimestamptzOidinterval intervalOidtimetz timetzOidbitbitOidvarbit varbitOidnumeric numericOid refcursor refcursorOidrecord recordOidvoidOid array_recordarray_recordOid regprocedureregprocedureOidregoper regoperOid regoperatorregoperatorOidregclass regclassOidregtype regtypeOiduuiduuidOidjsonjsonOidjsonbjsonbOid int2vector int2vectorOid oidvector oidvectorOid array_xml array_xmlOid array_json array_jsonOid array_line array_lineOid array_cidr array_cidrOid array_circlearray_circleOid array_moneyarray_moneyOid array_bool array_boolOid array_byteaarray_byteaOid array_char array_charOid array_name array_nameOid array_int2 array_int2Oidarray_int2vectorarray_int2vectorOid array_int4 array_int4Oid array_regprocarray_regprocOid array_text array_textOid array_tid array_tidOid array_xid array_xidOid array_cid array_cidOidarray_oidvectorarray_oidvectorOid array_bpchararray_bpcharOid array_varchararray_varcharOid array_int8 array_int8Oid array_pointarray_pointOid array_lseg array_lsegOid array_path array_pathOid array_box array_boxOid array_float4array_float4Oid array_float8array_float8Oid array_polygonarray_polygonOid array_oid array_oidOid array_macaddrarray_macaddrOid array_inet array_inetOidarray_timestamparray_timestampOid array_date array_dateOid array_time array_timeOidarray_timestamptzarray_timestamptzOidarray_intervalarray_intervalOid array_numericarray_numericOid array_timetzarray_timetzOid array_bit array_bitOid array_varbitarray_varbitOidarray_refcursorarray_refcursorOidarray_regprocedurearray_regprocedureOid array_regoperarray_regoperOidarray_regoperatorarray_regoperatorOidarray_regclassarray_regclassOid array_regtypearray_regtypeOid array_uuid array_uuidOid array_jsonbarray_jsonbOid int4range int4rangeOid _int4range _int4rangeOidnumrange numrangeOid _numrange _numrangeOidtsrange tsrangeOid_tsrange _tsrangeOid tstzrange tstzrangeOid _tstzrange _tstzrangeOid daterange daterangeOid _daterange _daterangeOid int8range int8rangeOid _int8range _int8rangeOidTimeTZ $fShowTimeTZ $fEqTimeTZToSqltoSql ToSqlField toSqlField RowEncoder FieldEncoderrunFieldEncoder runEncoderoneFieldtoSqlJsonField$fContravariantFieldEncoder$fToSqlFieldValue$fToSqlFieldUUID$fToSqlFieldTimeTZ$fToSqlFieldTimeOfDay$fToSqlFieldDay$fToSqlFieldUTCTime$fToSqlFieldByteString$fToSqlFieldByteString0$fToSqlFieldText$fToSqlFieldText0$fToSqlField[]$fToSqlFieldChar$fToSqlFieldDouble$fToSqlFieldFloat$fToSqlFieldInt64$fToSqlFieldInt32$fToSqlFieldInt16$fToSqlFieldBool $fToSql(,,) $fToSql(,) $fToSql() $fToSqlValue $fToSqlUUID $fToSqlTimeTZ$fToSqlTimeOfDay $fToSqlDay$fToSqlUTCTime$fToSqlByteString$fToSqlByteString0 $fToSqlText $fToSqlText0 $fToSql[] $fToSqlChar $fToSqlDouble $fToSqlFloat $fToSqlInt64 $fToSqlInt32 $fToSqlInt16 $fToSqlBool $fToSql(,,,) $fToSql(,,,,)$fToSql(,,,,,)$fToSql(,,,,,,)$fToSql(,,,,,,,)$fToSql(,,,,,,,,)$fToSql(,,,,,,,,,)$fToSql(,,,,,,,,,,)$fToSql(,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,,,,,,)$fToSql(,,,,,,,,,,,,,,,,,,,,,,) $fToSql(,,,,,,,,,,,,,,,,,,,,,,,)!$fToSql(,,,,,,,,,,,,,,,,,,,,,,,,)FromSqlfromSql FromSqlField fromSqlField FieldDecoder throwLocated decodeVectornotNullnullablefromSqlJsonField$fFromSqlFieldValue$fFromSqlFieldOid$fFromSqlFieldUUID$fFromSqlFieldTimeTZ$fFromSqlFieldTimeOfDay$fFromSqlFieldDay$fFromSqlFieldUTCTime$fFromSqlFieldByteString$fFromSqlFieldByteString0$fFromSqlFieldText$fFromSqlFieldText0$fFromSqlField[]$fFromSqlFieldDouble$fFromSqlFieldFloat$fFromSqlFieldInt64$fFromSqlFieldInt32$fFromSqlFieldInt16$fFromSqlFieldBool $fFromSql(,,) $fFromSql(,)$fFromSqlMaybe$fFromSqlValue $fFromSqlOid $fFromSqlUUID$fFromSqlTimeTZ$fFromSqlTimeOfDay $fFromSqlDay$fFromSqlUTCTime$fFromSqlByteString$fFromSqlByteString0 $fFromSqlText$fFromSqlText0 $fFromSql[]$fFromSqlDouble$fFromSqlFloat$fFromSqlInt64$fFromSqlInt32$fFromSqlInt16 $fFromSqlBool$fFunctorFieldDecoder$fFromSql(,,,)$fFromSql(,,,,)$fFromSql(,,,,,)$fFromSql(,,,,,,)$fFromSql(,,,,,,,)$fFromSql(,,,,,,,,)$fFromSql(,,,,,,,,,)$fFromSql(,,,,,,,,,,)$fFromSql(,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,,,,,,)$fFromSql(,,,,,,,,,,,,,,,,,,,,) $fFromSql(,,,,,,,,,,,,,,,,,,,,,)!$fFromSql(,,,,,,,,,,,,,,,,,,,,,,)"$fFromSql(,,,,,,,,,,,,,,,,,,,,,,,)#$fFromSql(,,,,,,,,,,,,,,,,,,,,,,,,)IsolationLevel ReadCommittedRepeatableRead Serializable queryWith queryWith_ execParamsqueryquery_connectionError lookupTypecommitrollback$fShowIsolationLevel$fReadIsolationLevel$fEqIsolationLevel$fOrdIsolationLevel$fEnumIsolationLevel$fBoundedIsolationLevelcNames makeQuerysql tupleOrSingleexpressionOnlymaxParamnumberAntiquotestupleE Transaction$fFunctorTransaction$fApplicativeTransaction$fMonadTransactionSqlQuerySQLrunTransaction'withConnectionqueryOnqueryOn_runTransactionrunTransactionIO$fSqlQueryTransaction $fSQLRWST $fSQLRWST0 $fSQLStateT $fSQLStateT0 $fSQLMaybeT $fSQLReaderT $fSQLExceptT $fSqlQuerym $fSQLReaderT0version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameMonadpstgrsql-lbpq-0.9.4.2-a55705a4"Database.PostgreSQL.LibPQ.Internal Connection