úÎwcĒ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠNone)!"%&*,/0234569:;<=?BDFILNOQRT[\ ĒĢŦ­Ž¯°ą˛˙Ÿŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHĒĢŦ­Ž¯°ą˛ ĒĢŦ­Ž¯°ą˛None)!"%&*,/0234569:;<=?BDFILNOQRT[\IJKLMIJKLMIJKLMNone)!"%&*,/0234569:;<=?BDFILNOQRT[\N5Next value, decoded using the provided value decoder.O5Next value, decoded using the provided value decoder. PQRSTUVWXYNO PQRSTUVWXYNOPQRSTUVWXYNO None)!"%&*,/0234569:;<=?BDFILNOQRT[\Z:An error reported by the DB. Code, message, details, hint.˙gThe SQLSTATE code for the error. The SQLSTATE code identifies the type of error that has occurred; it can be used by front-end applications to perform specific operations (such as error handling) in response to a particular database error. For a list of the possible SQLSTATE codes, see Appendix A. This field is not localizable, and is always present.NThe primary human-readable error message (typically one line). Always present.rDetail: an optional secondary error message carrying more detail about the problem. Might run to multiple lines.ĪHint: an optional suggestion 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.[bThe database returned an unexpected result. Indicates an improper statement or a schema mismatch.\=An error of the row reader, preceded by the index of the row.]An unexpected amount of rows.^Z[\]_`abcdefghij^\Z[]_`abcdefghij ^Z[\]_`abcdefghij None)!"%&*,/0234569:;<=?BDFILNOQRT[\kAn error on the client-side, with a message generated by the "libpq" library. Usually indicates problems with the connection.lParse a single result.mFetch a single result.nFetch a single result. okpqrstlmnu opkqrstlmnuokpqrstlmnu None)!"%&*,/0234569:;<=?BDFILNOQRT[\vwxyz{vwxyz{vwxyz{ None)!"%&*,/0234569:;<=?BDFILNOQRT[\|}~€|}~€|}~€ None)!"%&*,/0234569:;<=?BDFILNOQRT[\-A Word32 and a LibPQ representation of an OID‚A Postgresql type infoOƒ„…‚†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪOƒ„…‚†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪIƒ„…‚†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪNone)!"%&*,/0234569:;<=?BDFILNOQRT[\ĐŅŌĶÔĐŅŌĶĐŅŌĶÔNone)!"%&*,/0234569:;<=?BDFILNOQRT[\Õ7Encoder of some representation of a parameters product.ÕÖרŲÚÛÜÕÖרŲÚÛÕÖרŲÚÛÜNone)!"%&*,/0234569:;<=?BDFILNOQRT[\ŨŪßāáâŨŪßāáâŨŪßāáâNone)!"%&*,/0234569:;<=?BDFILNOQRT[\4A generic array encoder.Here's an example of its usage: bx :: Value [[Int64]] x = array (arrayDimension foldl' (arrayDimension foldl' (arrayValue int8)))RAn individual value encoder. Will be mapped to a single placeholder in the query.9Encoder of some representation of the parameters product.Has instances of o, b and jD, which you can use to compose multiple parameters together. E.g., someParamsEncoder :: + (Int64, Maybe Text) someParamsEncoder = p ¸ (  ) g p š ( ) :As a general solution for tuples of any arity, instead of ¸ and š!, consider the functions of the  contrazipj family from the "contravariant-extras" package. E.g., here's how you can achieve the same as the above: someParamsEncoder :: + (Int64, Maybe Text) someParamsEncoder =  (  ) ( ) AHere's how you can implement encoders for custom composite types: vdata Person = Person { name :: Text, gender :: Gender, age :: Int } data Gender = Male | Female personParams ::  Person personParams = p name ( ) g p gender ( genderValue) g p (fromIntegral . age) (  ) genderValue ::  Gender genderValue = p genderText h where genderText gender = case gender of Male -> "male" Female -> "female" Encode no parameters.9Lift an individual value encoder to a parameters encoder.BLift an individual nullable value encoder to a parameters encoder. 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 CHARN values. Note that it supports UTF-8 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 JSON values from JSON AST. Encoder of JSON values from raw JSON. Encoder of JSONB values from JSON AST. Encoder of JSONB values from raw JSON. Unlifts the  encoder to the plain  encoder.xGiven a function, which maps the value into the textual enum label from the DB side, produces a encoder of that value.Identifies the value with the PostgreSQL's "unknown" type, thus leaving it up to Postgres to infer the actual type of the value.dThe bytestring needs to be encoded according to the Postgres' binary format of the type it expects.VEssentially this is a low-level hook for encoding of values with custom codecs. The  4http://hackage.haskell.org/package/postgresql-binary"postgresql-binary". library will provide you with the toolchain. Lifts the  encoder into the ! encoder of a non-nullable value. Lifts the  encoder into the  encoder of a nullable value. [An encoder of an array dimension, which thus provides support for multidimensional arrays.Accepts:7An implementation of the left-fold operation, such as Data.Foldable.V$, which determines the input value.1A component encoder, which can be either another  ,  or .!Maps to ."Maps to .#Maps to .$Maps to .%Maps to .&Maps to .'Maps to .(Maps to .)Maps to .*Maps to .+Maps to  .,Maps to  .-Maps to  ..Maps to  ./Maps to  .0Maps to .1Maps to .2Maps to .8Maps to .<ãäå  !"#$%&'()*+,-./012345678!  !  9ãäå  !"#$%&'()*+,-./012345678None)!"%&*,/0234569:;<=?BDFILNOQRT[\?<All settings encoded in a single byte-string according to  Mhttp://www.postgresql.org/docs/9.4/static/libpq-connect.html#LIBPQ-CONNSTRINGthe PostgreSQL format.@bEncode a host, a port, a user, a password and a database into the PostgreSQL settings byte-string.?@?@?@None)!"%&*,/0234569:;<=?BDFILNOQRT[\æįčéęëæčéęæįčéęëNone)!"%&*,/0234569:;<=?BDFILNOQRT[\ėLocal statement key.ėíîīđņōėíîđņėíîīđņōNone)!"%&*,/0234569:;<=?BDFILNOQRT[\ķôõö÷øųúûüũū˙ķôõö÷øųúûüũū˙ķôõö÷øųúûüũū˙None)!"%&*,/0234569:;<=?BDFILNOQRT[\A4Possible details of the connection acquistion error.B$A single connection to the database.C\Acquire a connection using the provided settings encoded according to the PostgreSQL format.DRelease the connection.E Execute an operation on the raw libpq .*The access to the connection is exclusive.ABCDEABCDEABCDENone)!"%&*,/0234569:;<=?BDFILNOQRT[\?@ABCDEBACD?@ENone)!"%&*,/0234569:;<=?BDFILNOQRT[\F'An abstraction over parametric queries.¨It is composable using the standard interfaces of the category theory, which it has instances of. E.g., here's how you can compose queries using the Arrow notation: =-- | -- Given an Update query, -- which uses the @fmap (> 0) ˙@ decoder -- to detect, whether it had any effect, -- and an Insert query, -- produces a query which performs Upsert. composeUpsert :: Query a Bool -> Query a () -> Query a () composeUpsert update insert = proc params -> do updated <- update -< params if updated then •# -< () else insert -< params FFFNone)!"%&*,/0234569:;<=?BDFILNOQRT[\G/An error during the decoding of a specific row.HJAppears on the attempt to parse more columns than there are in the result.I"Appears on the attempt to parse a NULL as some value.JIAppears when a wrong value parser is used. Comes with the error details.KAn error with a command result.LVAn error reported by the DB. Consists of the following: Code, message, details, hint.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.MessageQ. The primary human-readable error message (typically one line). Always present.Detailsm. 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.MbThe database returned an unexpected result. Indicates an improper statement or a schema mismatch.N=An error of the row reader, preceded by the index of the row.OAn unexpected amount of rows.P(An error of some command in the session.Q{An error on the client-side, with a message generated by the "libpq" library. Usually indicates problems with connection.R!Some error with a command result.SJA batch of actions to be executed in the context of a database connection.T8Executes a bunch of commands on the provided connection.U~Possibly a multi-statement query, which however cannot be parameterized or prepared, nor can any results of it be collected.VHParameters and a specification of the parametric query to apply them to.GHIJKLMNOPQRSTUVGHIJKNLMOPRQSTUVGHIJKLMNOPQRSTUVNone)!"%&*,/0234569:;<=?BDFILNOQRT[\GHIJKNLMOPRQSTUVSUVPQRKLMNOGHIJTNone)!"%&*,/0234569:;<=?BDFILNOQRT[\FW7Composable decoder of composite values (rows, records).XA generic array decoder.DHere's how you can use it to produce a specific array value decoder: 0x :: Value [[Text]] x = array (arrayDimension v (arrayDimension v (arrayValue text))) YDecoder of an individual value.ZLDecoder of an individual row, which gets composed of column value decoders.E.g.: gx :: Row (Maybe Int64, Text, TimeOfDay) x = (,,) <$> nullableValue int8 <*> value text <*> value time[Decoder of a query result.\ Decode no value from the result.Useful for statements like INSERT or CREATE.]7Get the amount of rows affected by such statements as UPDATE or DELETE.^!Exactly one row. Will raise the  error if it's any other._Foldl multiple rows.`Foldr multiple rows.aMaybe one row or none.b)Zero or more rows packed into the vector.,It's recommended to prefer this function to c$, since it performs notably better.c'Zero or more rows packed into the list.dJLift an individual non-nullable value decoder to a composable row decoder.eFLift an individual nullable value decoder to a composable row decoder.fDecoder of the BOOL values.gDecoder of the INT2 values.hDecoder of the INT4 values.iDecoder of the INT8 values.jDecoder of the FLOAT4 values.kDecoder of the FLOAT8 values.lDecoder of the NUMERIC values.mDecoder of the CHAR- values. Note that it supports UTF-8 values.nDecoder of the TEXT values.oDecoder of the BYTEA values.pDecoder of the DATE values.qDecoder of the  TIMESTAMP values.rDecoder 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.sDecoder of the TIME values.tDecoder of the TIMETZ values.Unlike in case of  TIMESTAMPTZ5, Postgres does store the timezone information for TIMETZv. 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.uDecoder of the INTERVAL values.vDecoder of the UUID values.wDecoder of the JSON values into a JSON AST.xDecoder of the JSON values into a raw JSON .yDecoder of the JSONB values into a JSON AST.zDecoder of the JSONB values into a raw JSON .{+Lifts a custom value decoder function to a Y decoder.| Lifts the X decoder to the Y decoder.} Lifts the W decoder to the Y decoder.~A generic decoder of HSTORE values.8Here's how you can use it to construct a specific value: -x :: Value [(Text, Maybe Text)] x = hstore v NGiven a partial mapping from text to value, produces a decoder of that value.€_A 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 €,  or ‚.Lift a Y decoder into an X1 decoder for parsing of non-nullable leaf values.‚Lift a Y decoder into an X- decoder for parsing of nullable leaf values.ƒLift a Y decoder into a W1 decoder for parsing of non-nullable leaf values.„Lift a Y decoder into a W- decoder for parsing of nullable leaf values.…Maps to w.†Maps to v.‡Maps to u.ˆMaps to t.‰Maps to s.ŠMaps to r.‹Maps to q.ŒMaps to p.Maps to o.ŽMaps to n.Maps to m.Maps to l.‘Maps to k.’Maps to j.“Maps to i.”Maps to h.•Maps to g.–Maps to f.šMaps to (fmap Identity (^ def).›Maps to (c def).œMaps to (b def).Maps to (a def).žMaps to ].ŸMaps to \.NWX Y Z [ \]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ.WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„.[\]^abc_`ZdeYfghijklmnopqrstuvwxyz|}~{X€‚Wƒ„IWX Y Z [ \]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸNone)!"%&*,/0234569:;<=?BDFILNOQRT[\Š^A specification of a strictly single-statement query, which can be parameterized and prepared.Consists of the following: SQL template,params encoder,result decoder,2a flag, determining whether it should be prepared.÷The SQL template must be formatted according to Postgres' standard, with any non-ASCII characters of the template encoded using UTF-8. According to the format, parameters must be referred to using the positional notation, as in the following: $1, $2, $3G and etc. Those references must be used to refer to the values of the  encoder.^Following is an example of the declaration of a prepared statement with its associated codecs. selectSum :: Hasql.Query.F0 (Int64, Int64) Int64 selectSum = Hasql.Query.ŠY sql encoder decoder True where sql = "select ($1 + $2)" encoder = p ¸ (Hasql.Encoders. Hasql.Encoders.) g p š (Hasql.Encoders. Hasql.Encoders.%) decoder = Hasql.Decoders.  (Hasql.Decoders. Hasql.Decoders.) @The statement above accepts a product of two parameters of type x' and produces a single result of type x.ŠFŠFŠŠ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklfmnjopqrs!"tu$ vwxyz%&'()*+,-./0123456789{:|};?=>~@ABCDEFGHIJKLMNOPQ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄœĸŖœĸ¤œĨϜ§¨œ§ŠœĒŸĢŦœ­ŽŸĢ¯œ°œą˛œŗœ´ĩœ´ļœˇœ¸šœēģœŧœŊžœŊŋœŊœŊÁœŊœŊÜŊĜŊŜŊƜŊĮœŊȜŊɟĘ˟Ę˟Ę͜ÎΜÎМÎҜÎԜÎ͜ÎԜÎ՜Î֜Î×œÎØœÎ؜ÎڜÎۜÎܜÎŨœÎۜÎߜÎāœÎáœÎâœÎãœÎäœÎ圴æœ´įœ´čœ´éœ´ęœ´ëœ´ėœ´íœ´îœ´īœ´đœ´ņœōœķœôœõœöœ÷øœ÷ųœ÷úœ÷ûœ÷üœ÷ũœ÷ūœ÷˙œ÷œ÷œ÷œ÷œ÷œ÷œ÷œœœ œ  œ  œ  œ œ œ œ œ ŸĘŸĘŸĘŸĘŸĘŸĘŸĘŸĘœœœœœ œ´!œ´"œÎ#œÎ$œÎ%œÎ&œÎ'œÎ(œÎ)œÎ*œÎ+œÎ,œÎ-œÎ.œÎ/œÎ0œÎ1œ´2œ´3œ´4œ´5œ´6œ´7œ89œ8:œ8;œ8<œ=>œ=?œ=@œ=Aœ=Bœ¸CœDEœDFœGHœGIœJœKœLœMœNœOPœOQœORœOSœOTœOUœOVœOWœOXœOYœOZœO[œO\œO]œO^œO_œO`œabœacœadœaeœafœghœijœikœilœimœnœoœpœqŸrsŸrtŸruŸrvŸrwŸrxŸryœz{œz|œz}œz~€œ‚œƒœ„Ÿr…Ÿr†Ÿr‡Ÿrˆœ´‰œ´ŠŸ ‹ŸrŒŸrœŽœŽœŽ‘œŽ’œ“”œ“•œ“–œ¸—Ÿr˜™š›œžœŸ ĄĸŖĄĸ¤ĄĸĨœĻ§œ¨ŠĒĢŦ­ŽŦ­ŽŦ­¯Ŧ­°œą˛œŗ´œĩļœĩˇœĩ¸œšēœģœŧœŊœžœŋœœÁœœ­Ü­Ĝ­Ŝ­Ɯ­Įœ­Ȝ­ɜ­Ɯ˘˘Ë͜iΜiΜiМiҜiԜi͜iԜi՜i՜i֜iלiלi؜i؜i؜iڜiۜiܜiܜiŨœiۜiۜiߜiāœiáœiâœiãœiãœi䜱åœæįœæčœéęœéëœéėœéíœéîœéīœéđœéņœéōœéķœéôœéõœéöœé÷œéøœéųœéúœéûœéüœéũœéūœé˙œœœœœœœœœ œ œ÷ œ÷ œ÷ œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷œ÷ œ÷!œ÷"œ÷#œ÷$œ÷%œ÷&œ÷'œ÷(œ÷)œ÷*œ÷+œ÷,œ÷-œ÷.œ÷/œ÷0œ÷1œ÷2œ÷3œ÷4œ÷5œ÷6œ÷7œ÷8œ9:œ9;œ9<œ9=œ9=œ9>œ9?œ@Aœ@Bœ@Cœ@Dœ@Eœ@Fœ@Gœ@Hœ@IœJKœLMœNOœNPœNQœNRœSTœSUœSVœWXœWYœWZœW[œ\]œ\^œ\_œ`aœ`bœcdœefœegœehœeiœjkœjlœmnœmoœmpœmqœmrœmsœmtœmuœmvœmwœmxœyzœy{œy|œy}œ~œ~€œ~œ~‚œƒ„œƒ…œƒ†œƒ‡œƒˆœƒ‰œƒŠœƒ‹œƒŒœŽœœœ‘œ’œ“œ”œ•œ–œ—œ˜œ™œšœ›œœœœœžœŸœ œĄœĸœŖœ¤œaĨœaϜa§œa¨œaМaǜĢŦœĢ­œĢޜ̝œĢ°œĢąœĢ˛œĢŗœĢŗœĢ´œĩļœĩˇœĩ¸œĩšœĩēœĩģœĩŧœĩŊœĩžœĩŋœĩœĩœĩÁœĩœĩÜĩĜĩŜĩƜĩĮœĩȜĩɜĩƜĩ˜ĩ˜ĩ˜ĩ͜ÎΜÎМÎҜÎԜÎ͜ĨԜĨ՜Ĩ֜ĨלĨ؜Ĩ؜ĨڜĨۜĨܜĨŨœĨۜĨߜāáœâãœâäœâåœâæœâįœčéœčęœčëœčėœíîœíīœíđœíņœíōœíķœíôœíõœíöœ÷øœųúœųûœųüœųüœũūœũ˙œũœũœũœũœũœũœũœũœũœũ œũ œũ œũ œũ œũœũœũœũœũœũœũœũœũœũœũœũœũœũœũœũœũœũœũ œũ!œũ"œũ#œũ$œ%&œ%'œ%(œ%)œ%*œ%+œ%,œ%-œ%.œ%/œ%0œ%1œ%2œ%2œ%3œ%3œ%4œ%4œ%5œ%5œ%6œ%6œ%7œ%7œ%8œ%8œ%9œ%9œš:œš;œš<œ=>œ=?œ=@œ=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œ=[œ=\œ=]œ=^œ=_œ=`œ=aœ=bœ=cœ=dœ=eœ=fœ=gœ=hœ=hœ=iœ=jœ=kœ=lœ=mœ=nœ=oœ=pœ=qœ=rœ=sœ=tœ=uœ=uœ=vœ=vœ­wœ­xœ­yœ­zœ­zœ­{œ­{œ­|œ­|œ­}œ­}œ­~œ­~œ­œ­œ­€œ­œ­‚œ­ƒœ­„œ­…œ­†œ­‡œ­ˆœ­‰œ­Šœ­‹œ­Œœ­œ­Žœ­œ­œ­‘œ­’œ­“œ­”œ­•œ­–œ­—œ­˜œ­™œ­šœ­›œ­œœ­œ­žœŸ œŸ œŸĄœĸŖœO¤œOĨœOϜO§œO¨œOМOǜO̜OŦœO­œOޜO¯œO°œOąœO˛œOŗœO´œOĩœOļœOˇœ¸šœ¸šœ¸ēœ¸ģœ¸ģœ¸ŧœ¸Ŋœ¸Ŋœ¸žœ¸ŋœ¸ŋœ¸œ¸Áœ¸Áœ¸œ¸Ü¸Ü¸Ĝ¸Ŝ¸Ŝ¸ƜĮȜĮɜĮƜĮ˜Į˜Į͜ÎΜÎМÎҜÎԜĶԜĶ՜Ķ֜ĶלĶ؜Ķ؜ĶڜĶۜĶܜĶŨœĶۜĶߜĶāœĶᜭ✭㜭䜭圭札ᜭ蜭霭札äœēëœēėœēíœēîœēīœēđœņōœņķœņôœņõœņöœņ÷œņ÷œņøœņųœņúœņûœņüœņũœņūœņ˙œœœœœœ¸œ¸œ¸œ¸ œ¸ œ¸ œ¸ œ¸ œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸œ¸ œ¸!œ¸"œ¸#œ¸$œ¸%œ&'œ&(œ&)œ&*œ&+œ&,œ&-œ&.œ&/œ&0œ&1œ&2œ&3œ&4œ&5œŽ6œŽ7œŽ8œ“9œ“:œ“;œ“<œ=>œ=?œ@Aœ@AœBCœBDœBEœBFœBGœBHœBIœBJœBKœBLœBMœBNœBOœBPœBQœBRœBSœBTœBUœBVœBWœBXœBYœBZœB[œB\œB]œB^œB_œB`œBaœBbœBcœBdœBeœBfœBgœBhœBiœBjœBkœBlœBmœBnœBoœBpœBqœBrœBsœBtœBuœBvœBwœBxœByœBzœ{|œ{}œ{}œ~œ~€œ~œ~‚œ~ƒœ„œ…œ†œ‡œˆœ‰Šœ‰‹œ‰Œœ‰œ‰Žœœ‘œ’œ“œÎ”œÎ•œÎ–œ—˜œ—™œ—šœ—›œ—œœ—œ—žœ—Ÿœ— œ—Ąœ—ĸœ—Ŗœ—¤œ—Ĩœ—Ϝ—§œ—¨œ—М—ǜ—̜—Ŧœ—­œ—ޜ—¯œ—°œ—ąœ—˛œ—ŗœ—´œ—ĩœ—ļœˇ¸œˇšœŸēœĩģœĩŧœĩŊœĩžœĩŋœĩœĩÁœĩœĩÜĩĜĩŜĩƜĩĮœĩȜĩɜĩƜĩ˜ĩ˜ĩ͜ĩΜĩΜĩМĩҜĩԜĩ͜ĩԜĩ՜ĩ֜ĩלĩ؜ĩ؜ĩڜĩۜĩܜĩŨœĩۜĩߜĩāœĩáœĩâœĩãœĩäœĩåœĩæœĩįœĩčœĩéœĩęœëėœëíœëîœëīœŗđœŗņœ´ōœ´휴ôœ´õœ´öœ´÷œ´øœ´ųœ´úœ´ûœüũœ8ūœ8˙œ8œ8œ8œ8œ8œĸœĸœĸœĸœĸ œĸ œĸ œĸ œĸ œĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸœĸ œĸ!œ"#œ"$œ"%œ"&œ"'œ"(œ")œ"*œ"+œ§,œ§-œ§.œ /œ01œ02œ03œ04œ05œ06œ07œ08œ09œ0:œ;<œ;=œ;>œ?œ@œAœBœCœDœEœFœGœHœIœJœKœLœMœNœOœPœQRœQSœņTœņTŸĘUŸĘVŸĘWXYZXY[XY\XY]XY^XY_XY`XYaXY&bcdbcebcfbcgbhibhjbhkbhlbhmbhnbhobhpbhqbhrbhsbhtbhubhvbhwbhxbhybhzbhzbh{bc|bc}bc~bcbc€bcbc‚bc‚bcƒb„…b„†‡ˆ‰‡ˆŠ‡ˆ‹‡ˆŒ‡ˆ‡ˆŽ‡ˆ‡ˆ‡ˆ‘‡ˆ’‡ˆ“‡”•‡”–‡”—‡”˜‡”™‡”š‡”›‡”œ‡”‡”ž‡”Ÿ‡”Ÿ‡” ‡”Ą‡”Ą‡”ĸ‡”Ŗ‡”Ŗ‡”¤‡”Ĩ‡”Ĩ‡”ϧ¨Š§¨Ē§¨Ē§ĢŦ§Ģ­§Ģާ̝§Ģ°§Ģą§Ģ˛§Ģŗ§Ģ´§Ģĩ§Ģļ§Ģˇ§Ģ¸§Ģš§Ģē§Ģģ§Ģŧ§ĢŊ§Ģž§Ģŋ§Ģ§ĢÁ§Ģ§ĢçĢħĢŧ̯§ĢĮ§ĢȧĢɧĢʧĢ˧Ģ˧ĢͧĢΧĢΧĢЧĢҧĢŌ§ĢͧĢÔÕÖ×ÕÖØŲÚÛÜŨŪÜŨßÜŨāÜŨáÜŨâÜŨãÜŨäÜŨåÜŨæÜŨįÜŨįÜŨčÜéęÜéëÜéėÜéíÜéîÜéīÜéđÜéņÜéōÜéķÜéôÜéõÜéöÜé÷ÜéøÜéųÜéúûüũûüūûü˙ûüûüûüûüûü               ŦŦŦŦŦŦŦŦŦ Ŧ!Ŧ"Ŧ#Ŧ­$Ŧ%&Ŧ'(Ŧ)*Ŧ)+Ŧ,-Ŧ,-Ŧ,.Ŧ,/Ŧ,0Ŧ,1Ŧ,2Ŧ,3Ŧ,4Ŧ,5Ŧ,6Ŧ,7Ŧ89Ŧ89Ŧ8:Ŧ8;Ŧ8<Ŧ8=Ŧ8>Ŧ8?Ŧ8@Ŧ8AŦ8BŦ8CŦ8DŦ8EŦFGŦFGŦFHŦFIŦFJŦFKŦFLŦFMŦFNŦFOŦFPŦFQŦFRŦSTŦUVŦUWŦUXŦUYŦUZŦU[ŦU\ŦU]ŦU^Ŧ_`Ŧ_`Ŧ_aŦ_bŦ_cŦ_cŦ_dŦ_eŦ_fŦ_gŦ_hŦ_iŦ_jŦ_kŦ_lŦ_mŦnoŦnpŦnqŦnrŦnsŦntŦnuŦnvŦnwŦxyŦxzŦx{|}~|}|}€|}|}‚|}ƒb„…b„†b„‡b„ˆb„‰b„Šb„Šb„‹""pŒŽmghittp k l f  m u u p $  ‘ ’ + “ ” Q S n “ • – m j — — p ˜ ™ ! ! p š  Ž s s p  Ž › œ ›  ž œ Ÿ   Ą ĸ Ŗ ¤ Ļ & Ĩ Ļ . , § ¨ Š Ē / Ģ ) * Ŧ ­ ' Ž ( ¯  ° 4 6 8 ą ˛ ŗ ´ ĩ + ļ ˇ ¸ š ē ģ ŧ Ŋ ž ŋ Ā Á  à Ä Å Æ - Į 2 0 1 3 Č É Ę Ë Ė Í < 5 Î Ī ē Đ Ņ""pŌ]##pĶÔ%\!!p%š!"#ÕÕÖרŲÚÚÛÛÜŨŪßāáâãäåæįčéęëėíîaae’īđos!"tuņ&hasql-0.19.15.2-4LSRI3t737G1TozI2Wkud4Hasql.EncodersHasql.Connection Hasql.Query Hasql.SessionHasql.DecodersHasql.Private.PreludeHasql.Private.Decoders.ValueHasql.Private.Decoders.RowHasql.Private.Decoders.ResultHasql.Private.Decoders.ResultsHasql.Private.Decoders.Array Hasql.Private.Decoders.CompositeHasql.Private.PTIHasql.Private.Encoders.ValueHasql.Private.Encoders.ParamsHasql.Private.Encoders.ArrayHasql.Private.SettingsHasql.Private.Commands'Hasql.Private.PreparedStatementRegistryHasql.Private.IOHasql.Private.ConnectionHasql.Private.QueryDecoders.Results rowsAffectedHasql.Private.SessionUnexpectedAmountOfRows Control.Monad replicateM Data.Vectorvalueint8 singleRowArrayValueParamsunit nullableValueboolint2int4float4float8numericchartextbyteadate timestamp timestamptztimetimetzintervaluuidjson jsonBytesjsonb jsonbBytesarrayenumunknown arrayValuearrayNullableValuearrayDimension$fDefaultValue$fDefaultValue0$fDefaultValue1$fDefaultValue2$fDefaultValue3$fDefaultValue4$fDefaultValue5$fDefaultValue6$fDefaultValue7$fDefaultValue8$fDefaultValue9$fDefaultValue10$fDefaultValue11$fDefaultValue12$fDefaultValue13$fDefaultValue14$fDefaultValue15$fDefaultValue16$fDefaultParams$fDefaultParams0$fDefaultParams1$fDefaultParams2$fDefaultParams3$fDefaultParams4$fContravariantParams$fDivisibleParams$fDecidableParams$fMonoidParams$fSemigroupParams$fContravariantValueSettingssettingsConnectionError ConnectionacquirereleasewithLibPQConnectionQueryRowError EndOfInputUnexpectedNull ValueError ResultError ServerErrorUnexpectedResultError ClientErrorSessionrunsqlquery CompositeRowResult foldlRows foldrRowsmaybeRow rowsVectorrowsListcustom compositehstorecompositeValuecompositeNullableValue $fDefaultRow $fDefaultRow0 $fDefaultRow1$fDefaultResult$fDefaultResult0$fDefaultResult1$fDefaultResult2$fDefaultResult3$fDefaultResult4$fFunctorResult $fFunctorRow$fApplicativeRow $fMonadRow$fFunctorValue$fFunctorArray$fFunctorComposite$fApplicativeComposite$fMonadComposite statement TextBuilderLazyTextByteStringBuilderLazyByteStringbugbottom forMToZero_ forMFromZero_ strictConsbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwise GHC.MagiclazyGHC.IO.Exception assertErrorinlinemapGHC.Exts groupWith$GHC.Real fromIntegral realToFracguardData.Typeable.InternalmkAppTy Data.DynamictoDynjoinGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanhlog1pexpm1log1pexplog1mexp Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnfail Data.DataDatagfoldlgunfoldtoConstr dataTypeOf dataCast1 dataCast2gmapTgmapQlgmapQrgmapQgmapQigmapMgmapMpgmapMoFunctorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadReadreadList readsPrecreadPrec readListPrecReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShow showsPrecshowshowListGHC.ArrIxrangeindexinRange rangeSizeTypeableControl.Monad.FixMonadFixmfix Data.StringIsString fromString Applicativepure<*>*><* Data.FoldableFoldablefoldltoListfoldrlengthfoldMapnullfoldl'foldl1sumproductfoldr1maximumminimumelemfoldfoldr'Data.Traversable TraversabletraversemapM sequenceAsequence GHC.GenericsGenericData.Semigroup Semigroup<>sconcatstimesMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRatioRational RealWorldIOWordGHC.WordWord8Word16Word32Word64 Data.EitherEitherLeftRightTypeRepTyConbytestring-0.10.8.1Data.ByteString.Internal ByteString)scientific-0.3.4.9-JxsEP2U97KeHjUTI8Fv24jData.Scientific Scientific Data.Functor<$>'hashable-1.2.4.0-Ctl752zbguF6QanxurLOm2Data.Hashable.ClassHashablehash hashWithSalt Unsafe.Coerce unsafeCoerceString#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalText time-1.6.0.1Data.Time.Clock.UTCUTCTimeutctDay utctDayTimeGHC.IO.Handle.TypesHandleGHC.STST GHC.UnicodeisSpaceisAlphaisDigit Text.Readread Alternativeemptymany<|>some MonadPlusmzeromplusuntangle ioException heapOverflow stackOverflowallocationLimitExceededblockedIndefinitelyOnSTMblockedIndefinitelyOnMVarunsupportedOperationData.Functor.IdentityIdentity runIdentitydiffoption mtimesDefaultstimesIdempotentstimesIdempotentMonoid stimesMonoidcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionsortWith Text.PrintfhPrintfprintf Data.Fixed showFixedmod'divMod'div'FixedMkFixed HasResolution resolutionE0UniE1DeciE2CentiE3MilliE6MicroE9NanoE12Pico Data.Complexphase magnitudepolarcismkPolar conjugateimagPartrealPartComplex:+ tyconModule tyconUQname isNorepType mkNoRepType mkCharConstr mkRealConstrmkIntegralConstr mkCharType mkFloatType mkIntTypemaxConstrIndex constrIndex indexConstr isAlgType readConstr showConstr constrFixity constrFieldsdataTypeConstrsmkConstr mkDataType repConstr constrRep constrType dataTypeRep dataTypeName fromConstrM fromConstrB fromConstrDataTypeConstrDataRepIntRepFloatRepAlgRepCharRepNoRep ConstrRep AlgConstr IntConstr FloatConstr CharConstrConIndexFixityPrefixInfix Data.Version makeVersion parseVersion showVersionVersion versionBranch versionTagsSystem.EnvironmentgetEnvironment withProgNamewithArgsunsetEnvsetEnv lookupEnvgetEnv getProgNamegetArgs!System.Environment.ExecutablePathgetExecutablePathSystem.TimeouttimeoutSystem.Mem.StableName eqStableNamehashStableNamemakeStableName StableName System.Mem performGCperformMajorGCperformMinorGC System.Exitdie exitSuccess exitFailureexitWith Data.Unique hashUnique newUniqueUnique Data.STRef modifySTRef' modifySTRef Data.RatioapproxRationalData.Bifunctor BifunctorfirstsecondbimapControl.Monad.IO.ClassMonadIOliftIOControl.ConcurrentthreadWaitWriteSTMthreadWaitReadSTMthreadWaitWritethreadWaitReadrunInUnboundThreadrunInBoundThreadisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyrtsSupportsBoundThreadsControl.Concurrent.QSemN signalQSemN waitQSemNnewQSemNQSemNControl.Concurrent.QSem signalQSemwaitQSemnewQSemQSemControl.Concurrent.ChanwriteList2ChangetChanContents isEmptyChan unGetChandupChanreadChan writeChannewChanChan Debug.Trace traceMarkerIO traceMarker traceEventIO traceEvent traceStack traceShowtraceIdtrace putTraceMsgtraceIOmfilter<$!>unless replicateM_foldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterMfoldMapDefault fmapDefault mapAccumR mapAccumLforMforControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipList Control.ArrowleftApp^<<<<^>>^^>>returnAArrowarr***&&&Kleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++ ArrowApplyapp ArrowMonad ArrowLooploopControl.Category>>><<<Categoryid.readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar GHC.IO.HandlehClose GHC.Conc.IO registerDelay threadDelay closeFdWithioManagerCapabilitiesChangedensureIOManagerIsRunningGHC.Conc.Signal runHandlers setHandlerSignal HandlerFunControl.Concurrent.MVar mkWeakMVaraddMVarFinalizermodifyMVarMaskedmodifyMVarMasked_ modifyMVar modifyMVar_withMVarMaskedwithMVarswapMVarSystem.IO.Unsafe unsafeFixIOControl.ExceptionallowInterruptcatchesHandlerSystem.IO.Error catchIOErrorannotateIOError modifyIOErrorioeSetFileName ioeSetHandleioeSetLocationioeSetErrorStringioeSetErrorTypeioeGetFileName ioeGetHandleioeGetLocationioeGetErrorStringioeGetErrorTypeisUserErrorTypeisPermissionErrorTypeisIllegalOperationErrorTypeisEOFErrorTypeisFullErrorTypeisAlreadyInUseErrorTypeisDoesNotExistErrorTypeisAlreadyExistsErrorType userErrorTypepermissionErrorTypeillegalOperationErrorType eofErrorType fullErrorTypealreadyInUseErrorTypedoesNotExistErrorTypealreadyExistsErrorType isUserErrorisPermissionErrorisIllegalOperation isEOFError isFullErrorisAlreadyInUseErrorisDoesNotExistErrorisAlreadyExistsError mkIOError tryIOErrorControl.Exception.BasebracketOnErrorbracket_finallybracket onExceptiontryJusttry mapException handleJusthandle catchJustcatchPatternMatchFail RecSelError RecConError RecUpdError NoMethodError TypeErrorNonTerminationNestedAtomically readMaybe readEitherreads GHC.Conc.SyncgetUncaughtExceptionHandlersetUncaughtExceptionHandler reportErrorreportStackOverflow writeTVarreadTVar readTVarIO newTVarIOnewTVaralwaysalwaysSucceedscatchSTMthrowSTMorElseretry atomically unsafeIOToSTMmkWeakThreadIdthreadCapability threadStatus runSparksparpseq labelThreadyield myThreadIdthrowTo killThread childHandler numSparksgetNumProcessorssetNumCapabilitiesgetNumCapabilitiesnumCapabilitiesforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOdisableAllocationLimitenableAllocationLimitgetAllocationCountersetAllocationCounterThreadId BlockReason BlockedOnMVarBlockedOnBlackHoleBlockedOnException BlockedOnSTMBlockedOnForeignCallBlockedOnOther ThreadStatus ThreadRunningThreadFinished ThreadBlocked ThreadDiedSTMTVarioErrorasyncExceptionFromExceptionasyncExceptionToExceptionBlockedIndefinitelyOnMVarBlockedIndefinitelyOnSTMDeadlockAllocationLimitExceededAssertionFailedSomeAsyncExceptionAsyncException StackOverflow HeapOverflow ThreadKilled UserInterruptArrayExceptionIndexOutOfBoundsUndefinedElementExitCode ExitSuccess ExitFailure IOErrorTypeEOF AlreadyExists NoSuchThing ResourceBusyResourceExhaustedIllegalOperationPermissionDenied UserErrorUnsatisfiedConstraints SystemError ProtocolError OtherErrorInvalidArgumentInappropriateType HardwareFaultUnsupportedOperation TimeExpiredResourceVanished InterruptedData.Functor.ConstConstgetConstForeign.StorableStorablefindnotElem minimumBy maximumByallanyorand concatMapconcatmsumasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMfoldrM Data.MonoidDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Data.IORefatomicWriteIORefatomicModifyIORef'atomicModifyIORef modifyIORef' modifyIORef mkWeakIORef GHC.IORef writeIORef readIORefnewIORefIORefGHC.IOevaluateuninterruptibleMaskuninterruptibleMask_maskmask_getMaskingState interruptiblethrowIOstToIOFilePath MaskingStateUnmaskedMaskedInterruptibleMaskedUninterruptible userError IOExceptionIOError ioe_handleioe_type ioe_locationioe_description ioe_errno ioe_filename dynTypeRepdynAppdynApply fromDynamicfromDynDynamic GHC.Exceptionthrow Exception toException fromExceptiondisplayException ErrorCallErrorCallWithLocationArithExceptionOverflow UnderflowLossOfPrecision DivideByZeroDenormalRatioZeroDenominator Data.Typeablegcast2gcast1gcasteqTcast rnfTypeRep showsTypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOftypeRep typeRepArgs typeRepTyCon funResultTy splitTyConAppmkFunTy mkTyConApptypeRepFingerprintrnfTyConmkTyCon3tyConFingerprint tyConString tyConName tyConModule tyConPackage Typeable1 Typeable2 Typeable3 Typeable4 Typeable5 Typeable6 Typeable7NumericshowOctshowHex showIntAtBase showGFloatAlt showFFloatAlt showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadInt byteSwap64 byteSwap32 byteSwap16partitionEithersrightsleftseitherData.Type.Equality:~:Refl Data.ProxyProxy Data.OldListunwordswordsunlineslinesunfoldrsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBydeletenubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndData.Ord comparingDown Data.Char isSeparatorisNumberisMarkisLetter digitToInt lexDigits readLitChar lexLitCharlex readParenText.ParserCombinators.ReadPrec readS_to_Prec readPrec_to_S readP_to_Prec readPrec_to_PReadPrecText.ParserCombinators.ReadP readS_to_P readP_to_SReadSReadPfromRat floatToDigits showFloat Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultBitsshiftRshiftL.&..|.xor complementshiftrotatezeroBitsbitsetBitclearBit complementBittestBit bitSizeMaybebitSizeisSigned unsafeShiftL unsafeShiftRrotateLrotateRpopCount FiniteBits finiteBitSizecountLeadingZeroscountTrailingZeros Data.FunctiononfixvoidtoTitletoUppertoLowerisLowerisUpperisPrint isControl isAlphaNumisSymbol isPunctuation isHexDigit isOctDigit isAsciiUpper isAsciiLowerisLatin1isAsciigeneralCategoryGeneralCategoryFormatControlUppercaseLetterLowercaseLetterTitlecaseLetterModifierLetter OtherLetterNonSpacingMarkSpacingCombiningMark EnclosingMark DecimalNumber LetterNumber OtherNumberConnectorPunctuationDashPunctuationOpenPunctuationClosePunctuation InitialQuote FinalQuoteOtherPunctuation MathSymbolCurrencySymbolModifierSymbol OtherSymbolSpace LineSeparatorParagraphSeparator Surrogate PrivateUse NotAssigned GHC.STRef writeSTRef readSTRefnewSTRefSTRefrunSTfixSTlcmgcd^^^oddeven showSigned denominator numerator%GHC.Charchr intToDigit showLitChar showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailhead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeswapuncurrycurrysubtractGHC.MVar isEmptyMVar tryReadMVar tryPutMVar tryTakeMVarputMVarreadMVartakeMVarnewMVar newEmptyMVarMVar GHC.IO.UnsafeunsafeInterleaveIOunsafeDupablePerformIOunsafePerformIOasTypeOfuntil$!flipconstordapliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA2liftA<**>GHC.Err undefinederrorWithoutStackTrace SomeException&&||not+base-prelude-1.0.1.1-50PByGWQp6O3J1SglYyZmP BasePreludesortOnunconsisSubsequenceOf&$> traceShowMtraceM traceShowIdtransformers-0.5.2.0Control.Monad.Trans.Readerreaderasklocalasks Control.Monad.Trans.State.Strictstategetputmodifymodify'gets liftCallCC' withStateT mapStateT execStateT evalStateT withStatemapState execState evalStaterunStateStateStateT runStateT withReaderT mapReaderT withReader mapReader runReaderReaderReaderT runReaderTControl.Monad.Trans.Class MonadTranslift(contravariant-1.4-DzaLxukcYo81MHO5zSdeeP$Data.Functor.Contravariant.DivisiblechosenlostliftD conquereddivided Divisibledivideconquer DecidablechooseloseData.Functor.ContravariantcomparisonEquivalencedefaultEquivalencedefaultComparison>$$<>$<$<phantom Contravariant contramap>$ Predicate getPredicate Comparison getComparison EquivalencegetEquivalenceOpgetOp3contravariant-extras-0.3.3.1-CDm389HOhAf61HWkw2BZylContravariant.Extras contramanySuppliedContravariant.Extras.Contrazip contrazip2 contrazip3 contrazip4 contrazip5 contrazip6 contrazip7 contrazip8 contrazip9 contrazip10 contrazip11 contrazip12 contrazip13 contrazip14 contrazip15 contrazip16 contrazip17 contrazip18 contrazip19 contrazip20 contrazip21 contrazip22 contrazip23 contrazip24 contrazip25 contrazip26 contrazip27 contrazip28 contrazip29 contrazip30 contrazip31 contrazip32 contrazip33 contrazip34 contrazip35 contrazip36 contrazip37 contrazip38 contrazip39 contrazip40 contrazip41 contrazip421data-default-class-0.1.2.0-FYQpjIylblBDctdkHAFeXAData.Default.ClassDefaultdef$dlist-0.8.0.2-GWAMmbX9rLg3tqrbOizHGv Data.DListDList%either-4.4.1.1-5O7leaSEaUg3bgacsZvvvIControl.Monad.Trans.Either swapEitherTbracketEitherT_bracketEitherT hoistEither mapEitherT bimapEitherTrightlefteitherTEitherT runEitherTData.Either.Combinators swapEither eitherToError rightToMaybe leftToMaybe fromRightfromLeft unlessRight unlessLeft whenRightwhenLeftmapRightmapLeftmapBoth fromRight' fromLeft'isRightisLeft$loch-th-0.2.1-HeAYtId6vjrGaOk8hiaVQfDebug.Trace.LocationTH checkTraceIO checkTracecheckIOcheckundeffailureassert __LOCATION__ mtl-2.2.1-6qsR1PHUy5lL47Hpoa4jCMControl.Monad.Error.Class MonadError throwError catchError'placeholders-0.1-Jaw2KlzCEKg3F0WJS0H8eoDevelopment.PlaceholdersplaceholderNoWarning placeholdertodonotImplementedPlaceholderException&vector-0.11.0.0-6uB77qGCxR6GPLxI2sqsX3Vector'uuid-types-1.0.3-GqEQc4tvP0z5VPPkSZJlrZData.UUID.Types.InternalUUIDData.Time.Clock.ScaleDiffTime UniversalTime ModJulianDategetModJulianDatesecondsToDiffTimepicosecondsToDiffTimediffTimeToPicosecondsData.Time.Calendar.DaysDayModifiedJulianDaytoModifiedJulianDayaddDaysdiffDaysNominalDiffTimeData.Time.Calendar.PrivateNumericPadOptionData.Time.Clock.POSIXgetCurrentTimeData.Time.Clock.UTCDiff addUTCTime diffUTCTimeData.Time.LocalTime.TimeZoneTimeZonetimeZoneMinutestimeZoneSummerOnly timeZoneNameminutesToTimeZonehoursToTimeZonetimeZoneOffsetString'timeZoneOffsetStringutc getTimeZonegetCurrentTimeZoneData.Time.LocalTime.TimeOfDay TimeOfDaytodHourtodMintodSecmidnightmiddaymakeTimeOfDayValidutcToLocalTimeOfDaylocalToUTCTimeOfDaytimeToTimeOfDaytimeOfDayToTimedayFractionToTimeOfDaytimeOfDayToDayFractionData.Time.Format.Locale TimeLocalewDaysmonthsamPm dateTimeFmtdateFmttimeFmt time12FmtknownTimeZonesdefaultTimeLocaleiso8601DateFormatrfc822DateFormatData.Time.Calendar.OrdinalDate isLeapYearData.Time.Calendar.Gregorian toGregorian fromGregorianfromGregorianValid showGregoriangregorianMonthLengthaddGregorianMonthsClipaddGregorianMonthsRollOveraddGregorianYearsClipaddGregorianYearsRollOverData.Time.LocalTime.LocalTime ZonedTimezonedTimeToLocalTime zonedTimeZone LocalTimelocalDaylocalTimeOfDayutcToLocalTimelocalTimeToUTCut1ToLocalTimelocalTimeToUT1utcToZonedTimezonedTimeToUTC getZonedTimeutcToLocalZonedTimeData.Time.Format.Parse ParseTime buildTime parseTimeMparseTimeOrError readSTime readPTime parseTimereadTime readsTimeData.Time.Format FormatTimeformatCharacter formatTime&profunctors-5.2-Ftt6hTaJPG87FS5uAEIZltData.Profunctor.Unsafe Profunctor#.dimaplmaprmap.#Control.Monad.Trans.Maybe liftCatch liftCallCCexceptToMaybeTmaybeToExceptT mapMaybeTMaybeT runMaybeTdecoder decoderFn nonNullValueEnverrorcheckExecStatus serverErrorsinglevector getResultgetResultMaybeResults clientErrordropRemainders dimensionOIDPTI oidWord32oidPQptiOID ptiArrayOIDmkOIDmkPTIabstimeaclitemboxbpcharcidcidrcirclecstring daterange gtsvectorinet int2vector int4range int8rangelinelsegmacaddrmoneynamenumrangeoid oidvectorpathpointpolygonrecord refcursorregclass regconfig regdictionaryregoper regoperatorregproc regprocedureregtypereltimetid tintervaltsquerytsrange tstzrangetsvector txid_snapshotvarbitvarcharxidxml unsafePTIrun'run''CommandsasBytessetEncodersToUTF8setMinClientMessagesToWarning$fSemigroupCommandsLocalKeyPreparedStatementRegistrynewupdate$fHashableLocalKeyacquireConnection acquirePreparedStatementRegistryreleaseConnectioncheckConnectionStatuscheckServerVersiongetIntegerDatetimesinitConnection getResultsgetPreparedStatementKey checkedSendsendPreparedParametricQuerysendUnpreparedParametricQuerysendParametricQuerysendNonparametricQuery.postgresql-libpq-0.9.2.0-pfIR3xRbgN3lAiV2rvAZp"Database.PostgreSQL.LibPQ.Internal$fProfunctorQuery$fFunctorQuery