i,a?      !"#$%&'()*+,-./0123456789:;<=> experimental#Janne Hellsten <jjhellst@gmail.com> Safe-Infered<a way to reify a list of exceptions into a single exception ?Two 4 cases are considered equal, regardless of what the " list of exceptions looks like. @ABCD?@ABCD?portable experimental#Janne Hellsten <jjhellst@gmail.com>None 5A Field represents metadata about a particular field  Connection to an open database.       portable experimental#Janne Hellsten <jjhellst@gmail.com>None>A composite type to parse your custom data structures without 5 having to define dummy newtype wrappers every time.  # instance FromRow MyData where ...  $ instance FromRow MyData2 where ... &then I can do the following for free:   res <- query' c ...  forM res $ \"(MyData{..} :. MyData2{..}) -> do  .... $Wrap a list of values for use in an IN clause. Replaces a  single "?"1 character with a parenthesized list of rendered  values.  Example: = query c "select * from whatever where id in ?" (In [3,4,5]) A single-value " collection". AThis is useful if you need to supply a single parameter to a SQL 6 query, or extract a single column from a SQL result. Parameter example:  query c " select x from scores where x > ?" ( (42::Int))Result example: xs < - query_ c "select id from users"  forM_ xs $ \( id) -> {- ... -}>A query string. This type is intended to make it difficult to E construct a SQL query by concatenating string fragments, as that is A an extremely common way to accidentally introduce SQL injection & vulnerabilities into an application. This type is an instance of E, so the easiest way to $ construct a query is to enable the OverloadedStrings language = extension and then simply write the query in double quotes.  $ {-# LANGUAGE OverloadedStrings #-}  # import Database.PostgreSQL.Simple   q :: Query  q = "select ?" The underlying type is a Text#, and literal Haskell strings that D contain Unicode characters will be correctly transformed to UTF-8. A placeholder for the SQL NULL value.  !FGHIJ  ! !  !FGHIJportable experimental#Janne Hellsten <jjhellst@gmail.com> Safe-Infered".A type that may be converted from a SQL type. #(Convert a SQL value to a Haskell value. FReturns a list of exceptions if the conversion fails. In the case of 3 library instances, this will usually be a single %, but  may be a UnicodeException. Implementations of #% should not retain any references to  the   nor the K arguments after the result has = been evaluated to WHNF. Such a reference causes the entire  LibPQ.   to be retained. For example, the instance for K uses L to avoid @ such a reference, and that using bytestring functions such as M  and N+ alone will also trigger this memory leak. %=Exception thrown if conversion from a SQL value to a Haskell  value fails. &0The SQL value could not be parsed, or could not 0 be represented as a valid Haskell value, or an 4 unexpected low-level error occurred (e.g. mismatch - between metadata and actual data in a row). 'A SQL NULL" was encountered when the Haskell  type did not permit it. (.The SQL and Haskell types are not compatible. "#$%&'()*+OPQRSTUVWXYZ[\ "#$%&'()*+"#$%('&)*+)*+)*+ "#$% ('&)*+)*+)*+OPQRSTUVWXYZ[\portable experimental#Janne Hellsten <jjhellst@gmail.com> Safe-Infered,CA collection type that can be converted from a sequence of fields. N Instances are provided for tuples up to 10 elements and lists of any length. DNote that instances can defined outside of sqlite-simple, which is " often useful. For example, here''s an instance for a user-defined pair:  6data User = User { name :: String, fileQuota :: Int }   instance , User where  fromRow = User <$> / <*> / The number of calls to /* must match the number of fields returned 5 in a single row of the query result. Otherwise, a &  exception will be thrown. ANote the caveats associated with user-defined implementations of  -. ,-./0]^_`abcdefgh,-./0,-/.0,-./0]^_`abcdefghportable experimental#Janne Hellsten <jjhellst@gmail.com> Safe-Infered1>A type that may be used as a single parameter to a SQL query. 26Prepare a value for substitution into a query string. 12ijklmnopqrstuvwxyz{|}~121212ijklmnopqrstuvwxyz{|}~portable experimental#Janne Hellsten <jjhellst@gmail.com> Safe-Infered3<A collection type that can be turned into a list of SQLData  elements. 4 ToField a collection of values. 343434 34portable experimental#Janne Hellsten <jjhellst@gmail.com> Safe-Infered5Exception thrown if a  was malformed. ! This may occur if the number of '?' characters in the query : string does not match the number of parameters provided. 9;Open a database connection to a given file. Will throw an ! exception if it cannot connect. Every 9 must be closed with a call to :. If you specify ":memory:"+ or an empty string as the input filename, A then a private, temporary in-memory database is created for the ; connection. This database will vanish when you close the  connection. :Close a database connection. ; Execute an INSERT, UPDATE!, or other SQL query that is not  expected to return results. Throws 50 if the query could not be formatted correctly. < Perform a SELECT/ or other SQL query that is expected to return > results. All results are retrieved and converted before this  function returns. CWhen processing large results, this function will consume a lot of % client-side memory. Consider using fold instead. Exceptions that may be thrown:  54: the query string mismatched with given arguments.   QueryError5: the result contains no columns (i.e. you should be  using ; instead of <).  %: result conversion failed. = A version of <+ that does not perform query substitution. > A version of ;+ that does not perform query substitution. 56789:;<=>%)*+,/356789:;<=> 9:<=;>/3,5678%)*+)*+)*+56789:;<=>       !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOMPQMPRMSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~sqlite-simple-0.1.0.0Database.SQLite.Simple.OkDatabase.SQLite.Simple.InternalDatabase.SQLite.Simple.Types Database.SQLite.Simple.FromFieldDatabase.SQLite.Simple.FromRowDatabase.SQLite.Simple.ToFieldDatabase.SQLite.Simple.ToRowDatabase.SQLite.SimplePQResult ManyErrorsOkErrors RowParserRPunRPRowrow rowresultFieldresultcolumn Connection gettypenameexecstepStmt:.InOnlyfromOnlyQuery fromQueryNull FromField fromField FieldParser ResultErrorConversionFailedUnexpectedNull Incompatible errSQLTypeerrHaskellType errMessageFromRowfromRow fieldWithfieldnumFieldsRemainingToFieldtoFieldToRowtoRow FormatError fmtMessagefmtQuery fmtParamsopencloseexecutequeryquery_execute_$fEqOk$fExceptionManyErrors $fMonadOk $fMonadPlusOk$fAlternativeOk$fApplicativeOkbase Data.StringIsString $fMonoidQuery$fIsStringQuery $fReadQuery $fShowQuery$fEqNullbytestring-0.9.2.1Data.ByteString.Internal ByteStringData.ByteStringcopydropData.ByteString.Char8 takeWhile$fFromFieldDay$fFromFieldUTCTime$fFromFieldByteString $fFromField[]$fFromFieldText$fFromFieldDouble$fFromFieldInteger$fFromFieldInt64$fFromFieldInt$fFromFieldInt32$fFromFieldInt16$fFromFieldNull$fFromFieldMaybe$fExceptionResultError $fFromRow:. $fFromRow[]$fFromRow(,,,,,,,,,)$fFromRow(,,,,,,,,)$fFromRow(,,,,,,,)$fFromRow(,,,,,,)$fFromRow(,,,,,)$fFromRow(,,,,)$fFromRow(,,,) $fFromRow(,,) $fFromRow(,) $fFromRowOnly $fToFieldDay$fToFieldUTCTime $fToFieldText $fToField[]$fToFieldText0$fToFieldByteString$fToFieldByteString0$fToFieldDouble$fToFieldFloat$fToFieldWord64 $fToFieldWord$fToFieldWord32$fToFieldWord16$fToFieldWord8$fToFieldInteger$fToFieldInt64 $fToFieldInt$fToFieldInt32$fToFieldInt16 $fToFieldInt8 $fToFieldBool $fToFieldNull $fToFieldIn$fToFieldMaybe$fToFieldSQLData $fToRow:.$fToRow(,,,,,,,,,)$fToRow(,,,,,,,,)$fToRow(,,,,,,,)$fToRow(,,,,,,)$fToRow(,,,,,) $fToRow(,,,,) $fToRow(,,,) $fToRow(,,) $fToRow(,) $fToRowOnly $fToRow()$fExceptionFormatError