Bn      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-InferedNone      z H       None  Generate all $ instances for tuples within range.  Generate all $ instances for tuples within range.  Generate all $ instances for tuples within range.  Derive the # instance for a record definition. Add A instance to a record without adding the actual data definition.  Usefull in combination with    Derive the ' instance for a record definition. See   for an example. !Add A instance to a record without adding the actual data definition.  Usefull in combination with  "Derive  instances JGenerate table declarations for all tables in the database. This function I should be used in conjunction with generateDatabaseRecordInstances. For C example, this function generates the following code for the table users:  users :: Q [User]  users = table "users" HCreate corresponding Haskell record data types and generate QA and View F instances for all tables in the database (except for system tables). Example usage:  1 $(generateDatabaseRecordInstances myConnection) PNote that the database information is queried at compile time, not at run time! HLookup a database table, create corresponding Haskell record data types $ and generate QA and View instances Example usage:  K $(generateTableRecordInstances myConnection "users" "User" [''Show,''Eq]) MNote that the table information is queried at compile time, not at run time! 4Derive QA and View instances for record definitions Example usage:   $(generateRecordInstances [d|   data User = User  { userId :: Int  , userName :: String  }   |]) MThis generates the following record type, which can be used in view patterns   data UserV = UserV  { userIdV :: Q Int  , userNameV :: Q String  }   instance View (Q User) UserV !and the liftet record selectors: ! userIdQ :: Q User -> Q Int $ userNameQ :: Q User -> Q String #$% !"& Database connection Database connection Database connection  Table name )Data type name for each row of the table Default deriving instances #$% !"& #$% !"& None'`Type of the environment under which we reconstruct ordinary haskell data from the query result. a The first component of the reader monad contains a mapping from (queryNumber, columnNumber) to e the number of a nested query. The second component is a tuple consisting of query number associated ` with a pair of the raw result data partitioned by iter, and a description of this result data. (UDescription of result data of a query. The field iterR contains the column number of ^ the iter column. resCols contains a for all items columns their column number in the result. )MDescription of a table. The field iterN contains the name of the iter column \ the items field contains a list of item column names and their position within the result. *HType representing a query bundle, the type variable represents the type S of the result of the query bundle. A bundle consists of pair of numbered queries. I Each query consists of the query itself, a schema explaining its types. V If the query is a nested value in the result of another query the optional attribute ] represents (queryID, columnID). The queryId refers to the number of the query in the bundle  the columnID refers +,Wrapper type with phantom type for SQL plan A The type variable represents the type of the result of the plan ,2Wrapper type with phantom type for algebraic plan A The type variable represents the type of the result of the plan -LTranslate the algebraic plan to SQL and then execute it using the provided J DB connection. If debug is switchd on the SQL code is written to a file  named query.sql .;Translate an algebraic plan into SQL code using Pathfinder /GExtract the SQL queries from the XML structure generated by pathfinder 0JExecute the given SQL queries and assemble the results into one structure 1*Retrieve the data asociated with query i. 2&Get the position of item i of query q 3?Get the id of the query that is nested in column c of query q. 4IReconstruct the haskell value out of the result of query i with type ty. 5TReconstruct the values for column c of query q out of the rawData vals with type t. 6Partition by iter column 8 The first argument is the position of the iter column. " The second argument the raw data < It returns a list of pairs (iterVal, rawdata within iter) 7CExecute the given query plan bundle, over the provided connection. X It returns the raw data for each query along with a description on how to reconstruct  ordinary haskell data 85Transform algebraic plan scheme info into resultinfo '(9:;)<=>*?+@,A-B./01234567C8D'(9:;)<=>*?+@,A-B./01234567C8D'(9:;)<=>*?+@,A-B./01234567C8D Safe-Infered  Safe-Infered NoneNoneNone"Execute the query on the database 2Convert the query into unoptimised algebraic plan 0Convert the query into optimised algebraic plan Convert the query into SQL     None5 Boolean fold  | It'.s first argument is used in the case of False  | It'.s second argument is used in the case of True % | The third argument is the boolean d!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~EFGa!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~EFG Safe-InferedHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~|!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      ! " # $ % &''()*+ , - . / 0 1 2 3 4 5 6 7 8 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 i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@AB2CD3EFGHIJKL M N OPQRPSTPQUVWXPYZPQ[PQ\P]^P]_P`aPbcPbdPbePbfP]gPQhPQiPjkP`lP`mP`nP`oPbpPbqVrsPtuP`vP`wPQxPQyP]zVr{P|}P`~PtP`PPjVVVVVVP`VPPQVVPPVVVP      !"#$%P&'PY(PY)PY*PY+PY,PY-PY.PY/PY0PY1PY2PY3P45P67P89P8:P;<P;=P;>P;?P;@P;AP|BP|CP|DP|EPFGPtHPtIPtJPtKPtLPtMPtNPtOPtPPtQPtRPtSPtTPtUPtVPtWPtXPtYPtZPt[Pt\Pt]Pt^Pt_Pt`PtaPtbPtcPtdPtePtfPtgPhiP6jP6kP`lP`mP`nP`oP`pP`qP`rP`sP`tP`uP`vP`wP`xP`yP`zP`{P`|P`}P`~PSPPPPPPbPbPbPbPbPbPPPPPPPPPPPPPPPPPPPPPPPPPP]P]P]P]P]PQPQPQPQPQPQVr DSH-0.7.8.1 Database.DSHDatabase.DSH.InterpreterDatabase.DSH.CompilerDatabase.DSH.ImpossibleDatabase.DSH.DataDatabase.DSH.THDatabase.DSH.CompileDatabase.DSH.XHTMLDatabase.DSH.JSONDatabase.DSH.CSVDatabase.DSH.CombinatorsViewviewfromViewTA BasicTypeQAQtabletableDB tableWithKeystableCSVtuplerecordgenerateTableDeclarationsgenerateDatabaseRecordInstancesgenerateTableRecordInstancesgenerateRecordInstances xhtmlExportxhtmlExportStdoutxhtmlExportHandle jsonExportjsonExportStdoutjsonExportHandle csvExportcsvExportStdoutcsvExportHandle csvImportfromQ debugPlan debugPlanOpt debugCoredebugSQLunitfalsetruenot&&||eq==neq/=lt<lte<=gte>=gt>minmaxboolcond? listToMaybe maybeToListnothingjust isNothingisJustfromJustmaybe fromMaybe catMaybesmapMaybeleftrightisLeftisRighteitherleftsrightspartitionEithersnilemptycons<|snoc|> singletonheadtailtakedropmapappend><filter groupWithsortWiththelastinitnulllengthindex!!reverseandoranyallsumconcat concatMapmaximumminimumsplitAt takeWhile dropWhilespanbreakelemnotElemlookupzipzipWithunzipnubfstsndintegerToDoubletoQreturn>>=>>mzipguard impossibletablePersistencereifytoNormfromNormTableTableCSVTableDBTypeArrowTListTTupleTTextTDoubleTIntegerTCharTBoolTUnitTNormListNTupleNTextNDoubleNIntegerNCharNBoolNUnitNFun3ZipWithCondFun2MinMaxGtGteLteLtDisjConjEquSplitAt TakeWhile DropWhileSpanBreakZip GroupWithFilterAppendMapDropTakeSnocConsSortWithIndexAnyAllDivSubMulAddFun1NubTheLastInitNullLengthReverseOrAndSumConcatMaximumMinimumUnzipTailHeadIntegerToDoubleNotSndFstExpVarETableEAppE3AppE2AppE1LamEListETupleETextEDoubleEIntegerECharEBoolEUnitEtypeExptypeArrowResult typeTupleFst typeTupleSndtypeNorm tupleToEither eitherToTupleforgettoLam1toLam2 unfoldType $fIsStringQ$fConvertibleNormSqlValue$fConvertible(,)Norm$fConvertibleSqlValueNorm$fConvertibleSqlTypeIdType$fConvertibleTypeSqlTypeId$fConvertibleNormExp $fViewQ(,)$fViewQQ $fViewQQ0 $fViewQQ1 $fViewQQ2 $fViewQQ3 $fViewQQ4 $fFractionalQ$fNumQ$fNumQ0$fEqQ$fEqQ0$fTA(,)$fTAText $fTADouble $fTAInteger$fTAChar$fTABool$fTA()$fBasicTypeText$fBasicTypeDouble$fBasicTypeInteger$fBasicTypeChar$fBasicTypeBool $fBasicType() $fQAEither $fQAMaybe$fQA[]$fQA(,)$fQAText $fQADouble $fQAInteger$fQAChar$fQABool$fQA() $fShow(->)generateDeriveTupleQARangegenerateDeriveTupleTARangegenerateDeriveTupleViewRangederiveQAForRecordderiveQAForRecord'deriveViewForRecordderiveViewForRecord'deriveTAForRecord deriveTupleQA deriveTupleTAderiveTupleViewderiveTAForRecord'QueryR ResultInfo SchemaInfo QueryBundleSQLXML AlgebraXML executePlanalgToSQL extractSQLrunSQL getResults getColResPos findQueryprocessResultsprocessResults' partByIterrunQueryschemeToResultiterRresColsiterNitemsBundleSQLAlgebraalgToAlgdshFetchAllRowsStrict buildRefMap%$fQA(,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)$fTA(,,,,,,,,,,,,,,,)$fViewQ(,,,,,,,,,,,,,,,)baseGHC.Base++GHC.Errerrorfoldrghc-primGHC.Primseq System.IOprint otherwise$GHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTonegatefailfmap Data.String fromString fromIntegral realToFrac toInteger toRationalBoundedEnum GHC.ClassesEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShowIsString GHC.TypesBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerOrderingRationalIO Data.EitherEitherStringFalseTrueLeftRightLTEQGT Data.MaybeNothing HDBC-2.3.1.1Database.HDBC.Utils throwSqlError quickQuery' quickQueryfetchAllRowsMap'fetchAllRowsMapfetchAllRowsAL'fetchAllRowsAL fetchRowMap fetchRowALsFetchAllRows' sFetchAllRows fetchAllRows' fetchAllRowswithTransaction sFetchRow sExecuteManysExecutesRunhandleSqlError sqlExceptions handleSqlcatchSqlDatabase.HDBC.Types withWConn describeTable getTablesdbTransactionSupport dbServerVerproxiedClientVerproxiedClientName hdbcClientVerhdbcDriverNameclonepreparerunrunRawrollbackcommit disconnect IConnection ConnWrapperDatabase.HDBC.StatementdescribeResult originalQuerygetColumnNamesfetchRowfinish executeMany executeRawexecute Statement seErrorMsg seNativeErrorseStateSqlErrorDatabase.HDBC.ColTypes colNullable colDecDigitscolOctetLengthcolSizecolType SqlColDescSqlCharT SqlVarCharTSqlLongVarCharT SqlWCharT SqlWVarCharTSqlWLongVarCharT SqlDecimalT SqlNumericT SqlSmallIntT SqlIntegerTSqlRealT SqlFloatT SqlDoubleTSqlBitT SqlTinyIntT SqlBigIntT SqlBinaryT SqlVarBinaryTSqlLongVarBinaryTSqlDateTSqlTimeTSqlTimeWithZoneT SqlTimestampTSqlTimestampWithZoneTSqlUTCDateTimeT SqlUTCTimeT SqlIntervalTSqlGUIDT SqlUnknownT SqlTypeIdSqlIntervalMonthTSqlIntervalYearTSqlIntervalYearToMonthTSqlIntervalDayTSqlIntervalHourTSqlIntervalMinuteTSqlIntervalSecondTSqlIntervalDayToHourTSqlIntervalDayToMinuteTSqlIntervalDayToSecondTSqlIntervalHourToMinuteTSqlIntervalHourToSecondTSqlIntervalMinuteToSecondT SqlIntervalDatabase.HDBC.SqlValue posixToSqliToSqlnToSqlfromSql safeFromSqltoSql SqlString SqlByteString SqlWord32 SqlWord64SqlInt32SqlInt64 SqlIntegerSqlCharSqlBool SqlDouble SqlRational SqlLocalDateSqlLocalTimeOfDaySqlZonedLocalTimeOfDay SqlLocalTime SqlZonedTime SqlUTCTime SqlDiffTime SqlPOSIXTime SqlEpochTime SqlTimeDiffSqlNullSqlValuePrelude$!readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharSystem.IO.ErrorcatchGHC.IO.ExceptionioError Text.Readreadreads Data.Listunwordswordsunlineslinesproductfoldl1lex readParenreadList readsPrecText.ParserCombinators.ReadPReadSacoshatanhasinhcoshtanhsinhacosatanasincostansinlogBase**logsqrtexppiatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadixGHC.IOFilePath userErrorIOErrorlcmgcd^^^oddevendivModquotRemmoddivremquotrecip/floorceilingroundtruncateproperFraction undefined Control.MonadmapM_mapM sequence_sequence=<<maxBoundminBoundfromEnumtoEnumpredsucc showParen showStringshowCharshowsShowSshowListshow showsPrecGHC.Listunzip3zipWith3zip3cycle replicaterepeatiteratescanr1scanrfoldr1scanl1scanlfoldlJustMaybe Data.Tupleuncurrycurrysubtractsignumabs*+asTypeOfuntilflip.constidcompare text-0.11.2.0Data.Text.InternalText