e       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ K L M N O P Q R S T U V W X YZ[\]^_`ab 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:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~        !!!!!!!!!!!!!!!!!!!!! !&"2014 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-Inferred !String wrap type for SQL strings.   from  .   to  .Row String of SQL values.Place holder row String of SQL.List String of SQL.List String of SQL.         2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-InferredBPhantom typed SQL expression object. Project from projection type p.%Get SQL expression from typed object.!Get SQL string from typed object.Show expression.2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone24*Constraint which represents scalar degree. instance templates.2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-Inferred #Type tag for aggregatings power set 'Type tag for aggregatings GROUPING SETS $Type tag for normal aggregatings set %Type tag for window function building Type tag for exists predicateType tag for aggregated query(Type tag for flat (not-aggregated) query    2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone24%Interface for constant SQL term list.CSpecify tuple like record constructors which are allowed to define ProjectableFunctor.The constructor which has type r.!Constant integral SQL expression.Escape  $ for constant SQL string expression.From  % into constant SQL string expression.String interface of .$Constant SQL terms of '(a, b)' type.Constant SQL terms of # type. Width inference is required.Constant SQL terms of .Constant SQL terms of .Constant SQL terms of . Constant SQL terms of !(. Caution for floating-point error rate."Constant SQL terms of #(. Caution for floating-point error rate.$Constant SQL terms of %.&Constant SQL terms of '.(Constant SQL terms of ).*Constant SQL terms of +.,Constant SQL terms of -..Constant SQL terms of /.0Constant SQL terms of  .1Constant SQL terms of 2U. Use this carefully, because this is architecture dependent size of integer type.3Constant SQL terms of 4.5Constant SQL terms of 6.7Constant SQL terms of 8.9$ProductConstructor instance of pair. :;<=> "$&(*,.013579:;<=> "$&(*,.0135792013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone241Typed constant SQL expression from Haskell value.?Unsafely cast phantom type.Convert phantom type into .!Allowed only for having or where {. So NULL expression result will be possible. Behavior around boolean is strongly dependent on RDBMS impelemetations.AND operator for .??2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone24'Assignment pair list.Assignment pairValue SQL StringColumn SQL StringType for order-by termsType for order-by termType for order-by column )Order direction. Ascendant or Descendant.#Type for group-by tree$Type for grouping set%Type for group key.&Type for group-by term'Type for restriction of query.(#Result record duplication attribute+$Unit of product is supported or not..Configuration type.2Column SQL string type@Simple wrap type32 from string42 from  AString from ColumnSQL5StringSQL from ColumnSQL6Default configuration.7%Compose duplication attribute string.BCompose SQL String from '.8Compose WHERE clause from '.9Compose HAVING clause from '.: Single term aggregation element.;Key of aggregation power set.<Single grouping set.=Rollup aggregation element.>Cube aggregation element.?Grouping sets aggregation.@Empty aggregation.A0Compose GROUP BY clause from AggregateElem list.B9Compose PARTITION BY clause from AggregateColumnRef list.C*Compose ORDER BY clause from OrderingTermsDCompose SET clause from .ECompose OVER (PARTITION BY ... ) clause.> !"#CDEF$G%H&'()*+,-.I/012@J34A567B89:;<=>?@KLMNABCDEOP- !"#$%&'()*+,-./0123456789:;<=>?@ABCDE-2345./016+-,(*)7'89&%$#:@;<=>?AB "!CDE- "!#FEDC$G%H&'(*)+-,.I/012@J34A567B89:;<=>?@KLMNABCDEOP2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneBFQ. type to require query generate configuration.GRun F to expand with configurationHLift to F.IRead configuration.FRGHIFGHIFHGIFRGHI#2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone S.Product node. node attribute and product tree.TKProduct tree type. Product tree is constructed by left node and right node.Unode attribute for product.VGet node attribute.WGet tree from node.X7Make product node from node attribute and product tree.Y&Push new tree into product right term.Z+Push new leaf node into product right term.[Just make product of two node.\1Add restriction into top product of product tree.]6Add restriction into top product of product tree node.^ Foldable instance of ProductTreeS_T`aUbcdVWXNode attribute Product tree Result nodeY Current treeNew tree to push into right Result nodeZ Current treeNew leaf to push into right Result node[ Left node Right nodeJoin restriction Result tree\Product to restrictRestriction to addResult product])Target node which has product to restrictRestriction to add Result node^ST`aUbcVWXYZ[] S_Ta`UcbdVWXYZ[\]^ 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone3:MJProjection path from type r0 into type r16. This type also indicate key object which type is r1 for record type r0.e'Projection path primary structure type.K&Unsafely untype key to expand indexes.fMUnsafely cast width proof object of record. Result record must be same width.LProjectable fmap of J type.MProjectable ap of J type.gGet record width proof object.NGet record width.OCompose projection path.PCompose projection path.  phantom functor is h-ed.QCompose projection path.  phantom functors are join -ed like >=>.R$Unsafely project untyped value list.i*Unsafely define projection path from type r0 into type r1.S*Unsafely define projection path from type r0 into type r1. Use infered j.T*Unsafely define projection path from type r0 into type r1.U*Unsafely define projection path from type r0 into type r1. Use infered j.JkelmnoKfpLMgNOPQRiIndex of flat SQL value listResult projection pathSIndex of flat SQL value listResult projection pathTIndexes of flat SQL value listResult projection pathUIndexes of flat SQL value listResult projection path JKLMNOPQRSTU JLMNOPQRSTUKJkemlnoKfpLMgNOPQRiSTUOPQ 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneVIdentity projection path.W!Projection path for fst of tuple.X!Projection path for snd of tuple.VWProjection path of fst.qXProjection path of snd. JLMOPQVWX JLMOPQVWXVWqX2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone2346 Y Constraint [ inference interface.ZInfer constraint key.[-Constraint Key proof object. Constraint type c, record type r and columns type ct.\,Index of key which specifies constraint key.r Width of key.]Unsafely generate constraint [( proof object using specified key index.^Get table constraint s proof object from constraint [._1Get projection path proof object from constraint [.t6Unsafe. Make constraint key to add column phantom typeu*Map from table constraint into constraint [.`Derive  constraint [ from  constraint [aInfered  constraint [. Record type r has unique key which type is ct derived from primay key. YZ[v\r]-Key indexes which specify this constraint key"Result constraint key proof object^_tu`a YZ[\]^_`a [\]^_`YZa YZ[v\r]^_tu`a 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNonebInference rule of d existence.dPhantom typed table typeeUntyped typed table typefName string of table in SQLgWidth of tablewColumn name strings in SQLhColumn name strings in SQLi,Column name string in SQL specified by indexj Untype table.kName string of table in SQLl)Not qualified name string of table in SQLmWidth of tablenColumn name strings in SQLo,Column name string in SQL specified by indexpCast phantom type into  type.q+Unsafely generate phantom typed table type.bcdxeyfgwhi Column indexColumn name String in SQLjklmno Column indexColumn name String in SQLpqbcdefghijklmnopqefghidjklmnoqpbcbcdxeyfgwhijklmnopq 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone+rType for join product of query.sProduct node specialized by z.tProduct tree specialized by z.u'Untyped projection. Forgot record type.vProjection structure unitwQualified query.xQualifier type.zSub-query type{z from d.|Unsafely generate flat z from untyped components.}Unsafely generate aggregated z from untyped components.~Union binary operator on zExcept binary operator on zIntersect binary operator on z Width of z.zSQL to query table.{*Generate normalized column SQL from table.|Normalized column SQL}-SQL string for nested-query and toplevel-SQL.SQL string for nested-qeury.SQL StringSQL for toplevel-SQL.SQL string for toplevel-SQL. Get qualifier Unqualify. Add qualifier~Alias string from qualifierBinary operator to qualify.9Qualified expression from qualifier and projection index.From w SQL string into  . Width of w SubQUery.Get column SQL string of z.1Get qualified SQL string, like (SELECT ...) AS T0%Make untyped projection from columns..Make untyped projection from scalar sub-query..Make untyped projection from joined sub-query.ProjectionUnit width.Get column of ProjectionUnit. Width of u.Get column SQL string of u.)Get column SQL string list of projection.6Show product tree of query into SQL. StringSQL result.Shows join product of query. instance of wDrstuvwxyz{Typed d metadataResult z|}~z{|}subquery SQL and top-level SQL~Source  Projection Column indexResult SQL stringSource  ProjectionResult SQL string listrstuvwxyz{|}~z{|}~xywvutsr7rstuvwxyz{|}~z{|}~$2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneJoinContext type for QueryJoin.Initial .Update product of .Update product of .6Finalize context to extract accumulated query product.%2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneB&Monad type to qualify SQL table forms.8Run qualify monad with initial state to get only result.*Generated new qualifier on internal state.Lift to Get qualifyed table form query.Query to qualifyResult with updated state 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone3Projection type for row list.=Phantom typed projection. Projected into Haskell record type t. Width of .)Get column SQL string list of projection. Unsafely get untyped projection.Unsafely generate  from SQL string list.Unsafely generate " from qualified (joined) subquery.Unsafely generate  from scalar subquery.Unsafely generate unqualified  from d.Lift  to  to use as restrict predicate.Unsafely get SQL term from  Proejction.Unsafely generate  from SQL expression strings.Unsafely trace projection path.&Trace projection path to get narrower .&Trace projection path to get narrower . From  type to  type.&Trace projection path to get narrower . From  type to * type. Leaf type of projection path is .Composite nested  on projection phantom type. Cast into  on projection phantom type.Unsafely cast context type tag.$Unsafely lift to aggregated context.Unsafely down to flat context.>Unsafely get SQL string expression of not null key projection.Projectable fmap of  type.Projectable ap of  type.Make row list projection from  list.Make row list projection from z.IMap projection show operatoions and concatinate to single SQL expression."Source Result SQL string list!SQL string list specifies columnsResult Source Projection path Narrower Source .  typeProjection path Narrower .  type resultSource .  typeProjection path.  type leaf Narrower .  type result2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone Type for query suffix wordsExpand query suffix words%Generate prefix string of update SQL.`Generate update SQL by specified key and table. Columns name list of table are also required.`Generate update SQL by specified key and table. Columns name list of table are also required.,Generate update SQL specified by single key.%Generate prefix string of insert SQL."Generate records chunk insert SQL.0Generate size measured records chunk insert SQL.Generate insert SQL.IGenerate all column delete SQL by specified table. Untyped table version.2Generate all column delete SQL by specified table.  Table nameColumn name list to updateKey column name list Result SQL Table nameColumn name listKey column indexes Result SQLTable metadata Key columns Result SQLRecords count to insertColumns selector to insertTable metadata Result SQLColumns selector to insertTable metadata#Chunk size threshold (column count)%Result SQL and records count of chunkColumns selector to insertTable metadata Result SQLTable metadata Result SQL 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone234c*Weaken applicative functor on projections. Method like <*>.Weaken functor on projections. Method like .)Zipping except for identity element laws.Interface to control  of phantom type in projections."Cast projection phantom type into .Compose nested  phantom type on projection.BPlaceholder parameter type which has real parameter type arguemnt p.$Binary operator type for SQL String.+Interface to get SQL term from projections.=Unsafely generate SQL expression term from projection object.(Interface to project SQL terms unsafely.+Unsafely project from SQL expression terms.2Project from Projection type into expression type.7Unsafely project from SQL strings. String interface of .!Unsafely Project single SQL term.8Unsafely Project single SQL string. String interface of .)Polymorphic projection of SQL null value.JGenerate polymorphic projection of SQL constant values from Haskell value.)Polymorphic proejction of SQL true value.*Polymorphic proejction of SQL false value.:Polymorphic proejction of SQL set value from Haskell list.WUnsafely generate SQL expression string from projection object. String interface of .9Unsafely make projection unary operator from SQL keyword.EUnsafely make projection binary operator from string binary operator.MUnsafely make compare projection binary operator from string binary operator.LUnsafely make number projection binary operator from string binary operator.#Compare operator corresponding SQL = .#Compare operator corresponding SQL < .#Compare operator corresponding SQL <= .#Compare operator corresponding SQL > .#Compare operator corresponding SQL >= .#Compare operator corresponding SQL <> .#Logical operator corresponding SQL AND .#Logical operator corresponding SQL OR .#Logical operator corresponding SQL NOT .#Logical operator corresponding SQL EXISTS .'Concatinate operator corresponding SQL || .'Concatinate operator corresponding SQL || . Maybe type version.*String-compare operator corresponding SQL LIKE .*String-compare operator corresponding SQL LIKE .*String-compare operator corresponding SQL LIKE .*String-compare operator corresponding SQL LIKE . Maybe type version.IUnsafely make number projection binary operator from SQL operator string."Number operator corresponding SQL + ."Number operator corresponding SQL - .'Number operator corresponding SQL /// ."Number operator corresponding SQL * .-Number negate uni-operator corresponding SQL -.!Number fromIntegral uni-operator.:Unsafely show number into string-like type in projections."Number operator corresponding SQL + ."Number operator corresponding SQL - .'Number operator corresponding SQL /// ."Number operator corresponding SQL * .-Number negate uni-operator corresponding SQL -.!Number fromIntegral uni-operator.:Unsafely show number into string-like type in projections..Search case operator correnponding SQL search CASE . Like, 1CASE WHEN p0 THEN a WHEN p1 THEN b ... ELSE c ENDSame as , but you can write like  whenlist   elseclause.Null default version of ..Simple case operator correnponding SQL simple CASE . Like, 1CASE x WHEN v THEN a WHEN w THEN b ... ELSE c ENDUncurry version of , and you can write like ...   elseclause.Null default version of ."Binary operator corresponding SQL IN .Operator corresponding SQL IS NULL% , and extended against record types.Operator corresponding SQL NOT (... IS NULL)$ , and extended against record type./Operator from maybe type using record extended isNull.RANK() term. DENSE_RANK() term. ROW_NUMBER() term.PERCENT_RANK() term. CUME_DIST() term..Unsafely add placeholder parameter to queries."Unsafely get placeholder parameterNo placeholder semantics)Unsafely cast placeholder parameter type.;Provide scoped placeholder and return its parameter object.LProvide scoped placeholder and return its parameter object. Monadic version.Zipping projections.Binary operator the same as .Same as - other than using infered record constructor.Compose projection path J6 which has record result type using applicative style. Compose seed of projection path J which has record result type.Compose record type  using applicative style.Compose seed of record type .Compose record type  using applicative style.Compose seed of record type .LZipping except for identity element laws against placeholder parameter type.Control phantom  type in SQL expression type .Control phantom  type in projection type .Control phantom  type in placeholder parameters.Unsafely get SQL term from  Proejction.Unsafely get SQL term from .Unsafely make  from SQL terms.Unsafely make  from SQL terms.Unsafely make  from SQL terms.Unsafely make  from SQL terms.rSource projection objectResult SQL expression string.SQL expression stringsResult projection objectSQL expression stringsResult projection objectSource projection objectResult SQL expression string. Error tagEach when clausesElse result projectionResult projectionEach when clausesElse result projectionResult projectionEach when clausesElse result projectionResult projectionEach when clausesResult projectionProjection value to matchEach when clausesElse result projectionResult projection4Projection value to match and each when clauses listElse result projectionResult projectionProjection value to matchEach when clausesResult projectionQQi2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone23463Interface to run recursively identity element laws.Interface to compose phantom  nested type.Projection interface.8Unsafely make aggregation uni-operator from SQL keyword. Aggregation function COUNT. Aggregation function SUM. Aggregation function SUM. Aggregation function AVG. Aggregation function AVG.Aggregation function MAX.Aggregation function MAX.Aggregation function MIN.Aggregation function MIN.Aggregation function EVERY.Aggregation function ANY.Aggregation function SOME.^Get narrower projection along with projection path and project into result projection type.bGet narrower projection along with projection path and project into result projection type.  phantom functor is h-ed.pGet narrower projection along with projection path and project into result projection type. Source record * phantom functor and projection path leaf  functor are join-ed.JGet narrower projected expression along with projectino path and strip  phantom type off.JGet narrower projected expression along with projectino path and strip . phantom type off. Projection path leaf is  case.YGet narrower projection with flatten leaf phantom Maybe types along with projection path.Get narrower projection with flatten leaf phantom Maybe types along with projection path and project into result projection type. Specialize  for  type.>Base case definition to run recursively identity element laws.Run right identity element law.Run left identity element law.Not  type is not processed.Compose ! type in projection phantom type. Project from  into  . Project from  into .)     Source projectionProjection pathNarrower projected objectSource .  typeProjection pathNarrower projected object.  type resultSource .  phantom typeProjection path.  type leafNarrower projected object.  phantom type resultSource projection type p.  phantom typeProjection pathNarrower projected expression.  phantom type is stripped offSource projection type p.  phantom typeProjection path.  type leafNarrower projected expression.  phantom type is stripped offSource .  phantom typeProjection path Narrower  . Flatten  phantom typeSource .  phantom typeProjection path Narrower  . Flatten  phantom typeSource .  phantom typeProjection path&Narrower flatten and projected object.          &     2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone36(Window specification building interface.,Aggregated query building interface extends %. Add group by1 term into context and get aggregated projection.!SLift interface from base qualify monad. Another constraint to support unique query."Lift from qualify monad q into %* m. Qualify monad qualifies table form z.#'Lift interface from base qualify monad.$Lift from qualify monad q into %* m. Qualify monad qualifies table form z.%Query building interface.&Specify duplication.'Add restriction to last join.)Restrict context interface* Add restriction to this context.+'Specify ALL attribute to query context.,,Specify DISTINCT attribute to query context.-Add restriction to last join..6Add restriction to last join. Projection type version./1Add restriction to this query. Expr type version.0-Add restriction to this not aggregated query.1Add GROUP BY1 term into context and get aggregated projection.2<Add restriction to this aggregated query. Expr type version.3MAdd restriction to this aggregated query. Aggregated Projection type version.0Partitioning key to add into partition by clauseResult context ,Grouping element to add into group by clauseResult context!"#$%&' which represent restrictionCRestricted query context | Unsafely join subquery with this query.(Attribute maybe or justz to joinResult joined context and z result projection.)* which represent restrictionRestricted query context+,-./01Projection to add into group by(Result context and aggregated projection23 !"#$%&'()*+,-./0123#$!")*%&'( +,-./0123 !"#$%&'()*+,-./01232013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246B4/Type to accumulate query restrictions. Type cT is context tag of restriction building like Flat (where) or Aggregated (having).5Lift to 4Add whole query restriction.6Run 4 to get ' Resticted  instance. Restricted % instance.) instance.4564564564562013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246B7/Context monad type to build partition keys set.8.Context monad type to build grouping set list.9/Context monad type to build grouping power set.:0Context monad type to build single grouping set.;Typeful aggregate element.<)Context type building partition keys set.=&Context type building power group set.>)Context type building grouping sets list.?'Context type building one grouping set.@0Type to accumulate aggregating context. Type ac is aggregating-context type like aggregating key set building, aggregating key sets set building and partition key set building. Type at is aggregating term type.ALift to @.BRun @ to get terms list.CAdd GROUP BY4 element into context and get aggregated projection.D3Specify key of single grouping set from Projection.E#Specify key of single grouping set.F)Finalize and specify single grouping set.G)Specify key of rollup and cube power set.H0Finalize grouping power set as rollup power set.I.Finalize grouping power set as cube power set.JFinalize grouping set list.Partition clause instanceAggregated query instance. Aggregated %. Aggregated ).789:;<=>?@ABCDEFGHIJ789:;<=>?@ABCDEFGHIJ@A?>=<B;C:987DEFGHIJ789:;<=>?@ABCDEFGHIJ2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone2346B (Ordering term projection type interface.K-Type to accumulate ordering context. Type c* is ordering term projection context type.LLift to K.Add ordering terms.MAdd ordering terms.NAdd ascendant ordering term.OAdd descendant ordering term.PRun K to get  is ordering term. with ordering. with ordering.% with ordering.) with ordering.KLOrder directionOrdering terms to addResult context with orderingMOrdering terms to addOrder directionResult context with orderingNOrdering terms to addResult context with orderingOOrdering terms to addResult context with orderingPKLMNOPKLMNOP KLMNOP2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneBQ) type to accumulate join product context.RLift to Q%Unsafely update join product context."Add last join product restriction.'Unsafely join subquery with this query.SRun Q to get rJoinable query instance.QRAttribute maybe or justz to joinResult joined context and z result projection.SQRSQRSQRS2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneT.OrderedQuery monad type with placeholder type p!. Projection must be the same as K context type parameter c.UPCore query monad type used from flat(not-aggregated) query and aggregated query.V&Thin monad type for untyped structure.WRun V- monad with initial state to get only result.XGet qualifyed table form query.YRead configuration.ZExtract U computation.TUVWXYZTUVWXYZVWXYUZTTUVWXYZ2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246[<RestrictedStatement type synonym. Projection record type r must be the same as 4 type parameter r.\IRestrict only monad type used from update statement and delete statement.]Run \ to get '. 1Instance to lift from qualified table forms into \.[\] [\]\[][\] 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246^$Simple (not-aggregated) query type.  SimpleQuery' p r == _ ( p,  r)._)Simple (not-aggregated) query monad type.`%Lift from qualified table forms into _.aRun ^ to get SQL string with Qualify computation.bRun ^ to get z with Qualify computation. 1Instance to lift from qualified table forms into _.^_` a^ to runResult SQL string with Qualify computationb SimpleQuery' to runResult z with Qualify computation ^_`ab_^`ab^_` ab 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone2346 c-Partition monad type for partition-by clause.dAggregated query type. d p r == e ( p,   r).eAggregated query monad type. %Lift from qualified table forms into e.fRun d to get SQL with V computation.gRun d to get z with V computation.hAdd  PARTITION BY term into context.i,Operator to make window function projection. 1Instance to lift from qualified table forms into e. Restricted ) instance. cde fd to runResult SQL string with V computationgd to runResult z with V computationhi cdefghiedfgchi cde fghi 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246BjUnique query monad type.%Lift from qualified table forms into j.kRun  SimpleQuery to get z with Qualify computation.1Instance to lift from qualified table forms into j.jkj to runResult z with Qualify computationjkjkjk2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246BlTarget of assignment.m.Type to accumulate assigning context. Type r is table record type.nLift to moAdd an assignment.pAdd and assginment.qRun m to get ) with ordering. lmnopqlmnopqmnoplqlmnopqp2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246rAssignStatement type synonym. Specifying assignments and restrictions like update statement. Projection record type must be the same as Target type parameter r.sHTarget update monad type used from update statement and merge statement.tRun s.1Instance to lift from qualified table forms into \.rstrstsrtrst2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone37u/Unique relation type to compose scalar queries.v9Restriction function type for direct style join operator.w*Relation type with place-holder parameter p and query result type r.xSimple w from d.yInfered w.zInterface to derive d type object.&Sub-query Qualify monad from relation.#Basic monadic join operation using %.{*Join subquery with place-holder parameter p. query result is not .|#Join subquery. Query result is not .}*Join subquery with place-holder parameter p. Query result is .~Join subquery. Query result is .List subQuery, for IN and EXIST with place-holder parameter p.List subQuery, for IN and EXIST. Finalize _ monad and generate w with place-holder parameter p. Finalize _ monad and generate w. Finalize e monad and geneate w with place-holder parameter p. Finalize e monad and geneate w.9Simplify placeholder type applying left identity element.:Simplify placeholder type applying right identity element.9Basic direct join operation with place-holder parameters./Direct inner join with place-holder parameters.4Direct left outer join with place-holder parameters.5Direct right outer join with place-holder parameters.4Direct full outer join with place-holder parameters.Basic direct join operation.Direct inner join.Direct left outer join.Direct right outer join.Direct full outer join.(Apply restriction for direct join style.Union of two relations.%Union of two relations. Not distinct.Subtraction of two relations.+Subtraction of two relations. Not distinct.Intersection of two relations.,Intersection of two relations. Not distinct.4Union of two relations with place-holder parameters.BUnion of two relations with place-holder parameters. Not distinct.:Subtraction of two relations with place-holder parameters.HSubtraction of two relations with place-holder parameters. Not distinct.;Intersection of two relations with place-holder parameters.IIntersection of two relations with place-holder parameters. Not distinct.Generate SQL string from w with configuration.SQL string from w.Dump internal structure tree.!Unsafely specify unique relation.Discard unique attribute.#Basic monadic join operation using %.1Join unique subquery with place-holder parameter p.1Join unique subquery with place-holder parameter p. Query result is . Finalize j monad and generate u. Aggregated u.,Scalar subQuery with place-holder parameter p.Scalar subQuery.Auvwxyz {|}~!"#Left query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relationLeft query to joinRight query to joinJoin restrictionsResult joined relation$%&'2uvwxyz{|}~2wxyzu|{~}v?uvwxyz {|}~!"#$%&'2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneNot finalized Target monad type..UpdateTarget type with place-holder parameter p and projection record type r.Not finalized \ monad type.-Restriction type with place-holder parameter p and projection record type r. Finalize \ monad and generate . Finalize \ monad and generate  with place-holder parameter pSQL WHERE clause   string from . Finalize Target monad and generate . Finalize Target monad and generate  with place-holder parameter p.Lift  to  . Update target columns are all.Lift  to 7. Update target columns are all. With placefolder type p. Finalize \ monad and generate  . Update target columns are all. Finalize \ monad and generate 7. Update target columns are all. With placefolder type p. SQL SET clause and WHERE clause   string from (Show where clause.)*+,-.()*+,-.(2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone-zUntype interface for typed no-result type statments with single type parameter which represents place-holder parameter p.(Delete type with place-holder parameter p.InsertQuery type."Insert type to insert record type a.(Update type with place-holder parameter p.Update type with key type p and update record type a. Columns to update are record columns other than key columns, So place-holder parameter type is the same as record type a.'Query type with place-holder parameter p and query result type a.Unsafely make typed  from SQL string.From w into untyped SQL query string.From w into typed  with suffix SQL words.From w into typed .Unsafely make typed  from SQL string. Make typed  from d and key columns selector J. Make typed ( object using derived info specified by w type.Unsafely make typed  from SQL string.$Make untyped update SQL string from d and . Make typed  from ., d and . Make typed  using 6, d and . Make typed  from ., derived table and  Make typed  from 6, derived table and  Make typed  from d and !. Update target is all column.Directly make typed  from d and Restrict/ monad context. Update target is all column.Directly make typed  from d and Restrict/ monad context. Update target is all column.Unsafely make typed + from single insert and chunked insert SQL.Unsafely make typed  from single insert SQL. Make typed  from d and columns selector J with configuration parameter. Make typed  from d and columns selector J.Table type infered .Unsafely make typed  from SQL string.+Make untyped insert select SQL string from d, J and w. Make typed  from columns selector d, J and w with configuration parameter. Make typed  from columns selector d, J and w.Table type infered .Unsafely make typed  from SQL string.$Make untyped delete SQL string from d and . Make typed  from ., d and . Make typed  from d and . Make typed  from ., derived table and RestrictContext Make typed  from 6, derived table and RestrictContext/Show delete SQL string0Show insert SQL string.1Show insert SQL string.2Show update SQL string3Show update SQL string4Show query SQL stringBQuery SQL to type Typed result5Restrict monad context6789/0123477256789/01234 2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone3$Query restricted with specified key.+Query restricted with specified unique key.,Query restricted with specified primary key.*Query restricted with infered primary key.Convert from Haskell type r into SQL value q" list expected by update form likeUPDATE  tableN SET c0 = ?, c1 = ?, ..., cn = ? WHERE key0 = ? AND key1 = ? AND key2 = ? ... using derived  RecordToSql proof object.Typed  using specified constraint key.Typed  using infered primary key.u infered from table.-Unique key proof object which record type is a and key type is p.w to add restriction.Result restricted w-Unique key proof object which record type is a and key type is p.w to add restriction.Result restricted w.Primary key proof object which record type is a and key type is p.w to add restriction.Result restricted ww to add restriction.Result restricted wd to updateKey with constraint c, record type r and columns type p Result typed Updated to update Result typed Update-Unique key proof object which record type is a and key type is p.Unique key value to specify.Result restricted w&2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNoneG  !"+,-./016JLMOPQVWXYZ[^_`abcdz     #%)*+,-./0123CDEFGHIJMNOTUVWXYZ\^_cdehijopsuvwxyz{|}~!2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknownNone246?M:&Rule template to infer constraint key.#Rule template to infer primary key.#Rule template to infer primary key.$Rule template to infer not-null key.$Rule template to infer not-null key.;Column projection path J template.<Column projection path J and constraint key template.Column projection path J templates.SMake column projection path and constraint key templates using default naming rule.=)Rule template to infer table derivations.>3Template to define infered entries from table type.d and w templates.Make TableDerivationH variable expression template from table name using default naming rule.Make dH variable expression template from table name using default naming rule.Make wH variable expression template from table name using default naming rule.Make template for  instance.?Make template for record $ instance using default naming rule.JMake templates about table and column metadatas using default naming rule.PMake templates about table, column and haskell record using default naming rule.Template of derived primary .Template of derived primary Update.'SQL templates derived from primary key.ASQL templates derived from primary key using default naming rule.@ All templates about primary key.A!All templates about not-null key.<Generate all templtes about table using default naming rule.Unsafely inlining SQL string  in compile type.8Extract param type and result type from defined RelationInlining composed  in compile type. nGenerate all templates against defined record like type constructor other than depending on sql-value type.":Constraint type Record typeKey typeIndexes specifies keyResult Y declaration Record typeKey typeIndexes specifies key"Result constraint key declarations Table name Column typePrimary key index&Declarations of primary constraint key Record type Column indexResult ColumnConstraint declaration Table nameNotNull key index&Declaration of not-null constraint key; Record type Column declaration variable name0Column index expression in record (begin with 0) Column type"Column projection path declaration<.May Constraint type and constraint object name Record type Column declaration variable name0Column index expression in record (begin with 0) Column type"Column projection path declarationRecord type nameColumn info list#Column projection path declarationsRecord type nameColumn info list#Column projection path declarations=>Table declaration variable name"Relation declaration variable name*Insert statement declaration variable name/InsertQuery statement declaration variable name Record typeTable and Relation declarationTable declaration variable name"Relation declaration variable name*Insert statement declaration variable name/InsertQuery statement declaration variable name Record type'Table name in SQL ex. FOO_SCHEMA.table0 Column namesTable and Relation declarationBCTable name stringResult var ExpDTable name stringResult var ExpETable name stringResult var Exp?$Configuration to generate query with Schema name Table name*Column names and types and constraint typeResult declarations$Configuration to generate query with Schema name Table nameColumn names and typesRecord derivingsResult declarations#Variable name of result declarationParameter type of Record type of w expressionResult  declaration#Variable name of result declarationParameter type of UpdateRecord type of Updated expressionResult Update declaration9Variable name of select query definition from primary key=Variable name of update statement definition from primary keyPrimary key type Record typeRelation expressionTable expressionResult declarationsTable name of DatabasePrimary key type Record typeRelation expressionTable expressionResult declarations@Table name stringType of primary keyIndexes specifies primary keyResult declarationsA$Configuration to generate query withSchema name string of DatabaseTable name string of DatabaseColumn names and typesderivings for Record typePrimary key indexNot null key indexResult declarationsQuery parameter typeQuery result typeSQL string query to inlineVariable name for inlined queryResult declarations%Variable name which has Relation type7Extracted param type and result type from Relation type"Top-level variable name which has w typeObject which has w typeConfiguration to generate SQLsuffix SQL words(Variable name to define as inlined queryResult declarations Type constructor nameResult declaration  ":;<=>BCDE?@A F'()'(*'(+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u v w x y z { | } ~      v          v   v - z > t u >      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~||x        !!!!!!!!!! ! ! ! ! !!!!!!!!""""""" !"#$%&'()*+,-*./0*1234567458945:;45<=>?@A>B@CDEFGDHFIJ45KLMNOMPQMRSTUVWXYZ[\]^_`LMVZabcdefghin#j#k#l#m#n#o#p#q#r#s#t#u#j#v#w#(#x#, y z { |'}~ r      v'(         w               6 7                 $$$$$$$r%%%%%s%%         OV[fglx x   x m) !"#$%&'()*+!,!-!.!/!0!1!2!3!4!5!6!78relational-query-0.5.0.2$Database.Relational.Query.Constraint%Database.Relational.Query.Expr.Unsafe Database.Relational.Query.Scalar!Database.Relational.Query.ContextDatabase.Relational.Query.PureDatabase.Relational.Query.Expr#Database.Relational.Query.Component,Database.Relational.Query.Monad.Trans.Config#Database.Relational.Query.Pi.UnsafeDatabase.Relational.Query.PiDatabase.Relational.Query.TableDatabase.Relational.Query.Sub$Database.Relational.Query.ProjectionDatabase.Relational.Query.SQL%Database.Relational.Query.Projectable-Database.Relational.Query.ProjectableExtended%Database.Relational.Query.Monad.Class1Database.Relational.Query.Monad.Trans.Restricting1Database.Relational.Query.Monad.Trans.Aggregating.Database.Relational.Query.Monad.Trans.Ordering*Database.Relational.Query.Monad.Trans.Join$Database.Relational.Query.Monad.Type(Database.Relational.Query.Monad.Restrict&Database.Relational.Query.Monad.Simple)Database.Relational.Query.Monad.Aggregate&Database.Relational.Query.Monad.Unique/Database.Relational.Query.Monad.Trans.Assigning&Database.Relational.Query.Monad.Assign"Database.Relational.Query.Relation Database.Relational.Query.EffectDatabase.Relational.Query.Type!Database.Relational.Query.DerivesDatabase.Relational.Query.TH&Database.Relational.Query.Internal.SQL*Database.Relational.Query.Internal.Product/Database.Relational.Query.Monad.Trans.JoinState-Database.Relational.Query.Monad.Trans.QualifyDatabase.Relational.Querypersistable-record-0.1.0.0Database.Record.KeyConstraintUniqueNotNullPrimaryExprunsafeStringSqlshowExpr ScalarDegreedefineScalarDegreePowerSetListSet OverWindowExists AggregatedFlatShowConstantTermsSQLshowConstantTermsSQL'ProductConstructorproductConstructorshowConstantTermsSQL valueExprjustfromJustexprAnd Assignments Assignment AssignTerm AssignColumn OrderingTerms OrderingTerm OrderColumnOrderDescAsc AggregateElem AggregateSetAggregateBitKeyAggregateColumnRefQueryRestriction DuplicationDistinctAllProductUnitSupportPUNotSupported PUSupportedConfigproductUnitSupportchunksInsertSizenormalizedTableName ColumnSQL columnSQL columnSQL'showsColumnSQL defaultConfigshowsDuplication composeWhere composeHavingaggregateColumnRefaggregatePowerKeyaggregateGroupingSetaggregateRollup aggregateCube aggregateSetsaggregateEmptycomposeGroupBycomposePartitionBycomposeOrderBy composeSets composeOver QueryConfigrunQueryConfig queryConfigaskQueryConfigPiunsafeExpandIndexespfmappapwidth<.>pidefinePidefineDirectPi'defineDirectPiid'fst'snd'HasConstraintKey constraintKeyKeyindexesunsafeDefineConstraintKeytableConstraint projectionKey uniqueKeyderivedUniqueKeyTableDerivable derivedTableTableUntypedname'width'columns'!unTypename shortNamecolumnsindextoMaybetable JoinProductQueryProductNode QueryProductUntypedProjectionProjectionUnit Qualified QualifierSubQuery fromTable flatSubQueryaggregatedSubQueryunionexcept intersectunitSQLshowSQLtoSQL qualifier unQualifyqualify queryWidthcolumnuntypedProjectionFromColumns#untypedProjectionFromScalarSubQuery#untypedProjectionFromJoinedSubQuerywidthOfUntypedProjectioncolumnsOfUntypedProjectionListProjection ProjectionuntypeunsafeFromQualifiedSubQueryunsafeFromScalarSubQueryunsafeFromTablepredicateProjectionFromExprunsafeFromSqlTermspiMaybepiMaybe' flattenMaybeunsafeChangeContextunsafeToAggregated unsafeToFlatunsafeStringSqlNotNullMaybelistunsafeListFromSubQueryunsafeStringSqlList QuerySuffixshowsQuerySuffixupdatePrefixSQL updateSQL'updateOtherThanKeySQL'updateOtherThanKeySQLinsertPrefixSQLinsertSizedChunkSQL insertSQLdeletePrefixSQL'deletePrefixSQLProjectableApplicative|*|ProjectableFunctor|$|ProjectableIdZipleftIdrightIdProjectableMaybe PlaceHoldersSqlBinOpProjectableShowSqlunsafeShowSql'SqlProjectableunsafeProjectSqlTerms'exprunsafeProjectSqlTermsunsafeProjectSql'unsafeProjectSqlunsafeValueNullvalue valueTrue valueFalsevalues unsafeShowSql unsafeUniOp unsafeBinOp.=..<..<=..>..>=..<>.and'or'not'exists.||.?||?like' likeMaybe'like likeMaybe.+..-../..*.negate' fromIntegral'showNum?+??-??/??*? negateMaybefromIntegralMaybe showNumMaybe caseSearch casesOrElsecaseSearchMaybecase' casesOrElse' caseMaybein' isNothingisJust fromMayberank denseRank rowNumber percentRankcumeDistunsafeAddPlaceHoldersunsafePlaceHoldersunitPlaceHolder placeholder' placeholder projectZip><ipfmapProjectableRunIdsZiprunIdsProjectableFlattenMaybeflattenunsafeAggregateOpcountsumMaybesum'avgMaybeavgmaxMaybemax'minMaybemin'everyany'some'?!?!?.!.?flattenPiMaybe!?? flattenPhMonadPartitionunsafeAddPartitionKeyMonadAggregateunsafeAddAggregateElementMonadQualifyUniqueliftQualifyUnique MonadQualify liftQualify MonadQuerysetDuplication restrictJoinunsafeSubQuery MonadRestrictrestrictall'distinctonEonwheresEwheresgroupByhavingEhaving Restrictings restrictingsextractRestrictPartitioningSetAggregatingSetListAggregatingPowerSetAggregatingSet AggregateKeyPartitioningSetTAggregatingPowerSetTAggregatingSetListTAggregatingSetT Aggregatings aggregatingsextractAggregateTermsgroupBy'keykey'setbkeyrollupcube groupingSets Orderings orderingsorderByascdescextractOrderingTerms QueryJoinjoin'extractProduct OrderedQuery QueryCoreConfigureQueryconfigureQuery qualifyQuery askConfig extractCoreRestrictedStatementRestrictextract SimpleQuery QuerySimplesimple toSubQueryWindowAggregatedQueryQueryAggregate partitionByover QueryUnique AssignTarget Assignings assigningsassignTo<-#extractAssignmentsAssignStatementAssignUniqueRelationJoinRestrictionRelationderivedRelationtableOfquery'query queryMaybe' queryMaybe queryList' queryList relation'relationaggregateRelation'aggregateRelationrightPhleftPhinner'left'right'full'innerleftrightfullon'unionAll exceptAll intersectAllunion' unionAll'except' exceptAll' intersect' intersectAll'sqlFromRelationWithsqlFromRelationdump unsafeUniqueunUnique uniqueQuery'uniqueQueryMaybe'uniqueRelation'aggregatedUnique queryScalar' queryScalarUpdateTargetContext UpdateTargetRestrictionContext Restriction restriction restriction'sqlWhereFromRestriction updateTarget updateTarget'liftTargetAllColumnliftTargetAllColumn'updateTargetAllColumnupdateTargetAllColumn'sqlFromUpdateTargetUntypeableNoFetch untypeNoFetchDelete untypeDelete InsertQueryuntypeInsertQueryInsert untypeInsertuntypeChunkInsertchunkSizeOfInsertUpdate untypeUpdate KeyUpdate updateKeyuntypeKeyUpdateQuery untypeQueryunsafeTypedQueryrelationalQuerySQLrelationalQuery'relationalQueryunsafeTypedKeyUpdatetypedKeyUpdatetypedKeyUpdateTableunsafeTypedUpdate updateSQL typedUpdate' typedUpdatederivedUpdate' derivedUpdatetypedUpdateAllColumnrestrictedUpdateAllColumnrestrictedUpdateTableAllColumnunsafeTypedInsert'unsafeTypedInsert typedInsert' typedInsert derivedInsertunsafeTypedInsertQueryinsertQuerySQLtypedInsertQuery'typedInsertQueryderivedInsertQueryunsafeTypedDelete deleteSQL typedDelete' typedDeletederivedDelete' derivedDelete specifiedKeyuniqueprimary'primaryupdateValuesWithKeyupdateByConstraintKey primaryUpdatederivedUniqueRelationdefineHasPrimaryKeyInstance"defineHasPrimaryKeyInstanceDefaultdefineHasNotNullKeyInstance"defineHasNotNullKeyInstanceDefault defineColumnsdefineColumnsDefaultdefineTableTypesderivationExpDefaulttableVarExpDefaultrelationVarExpDefault defineProductConstructorInstancedefineTableTypesDefault defineTableTypesAndRecordDefaultdefinePrimaryQuerydefinePrimaryUpdatedefineSqlsWithPrimaryKeydefineSqlsWithPrimaryKeyDefaultdefineTableDefaultunsafeInlineQuery reifyRelation inlineQuerymakeRelationalRecordDefault StringSQL stringSQLbaseGHC.BaseString showStringSQL rowStringSQLrowPlaceHolderStringSQLrowConsStringSQL listStringSQL $fShowExpr$fScalarDegreeMaybe intExprSQLescapeStringToSqlExpr stringExprSQL$fShowConstantTermsSQL(,)$fShowConstantTermsSQLMaybe Data.MaybeMaybe$fShowConstantTermsSQLLocalTime time-1.4.2Data.Time.LocalTime.LocalTime LocalTime$fShowConstantTermsSQLTimeOfDayData.Time.LocalTime.TimeOfDay TimeOfDay$fShowConstantTermsSQLDayData.Time.Calendar.DaysDay$fShowConstantTermsSQLDoubleghc-prim GHC.TypesDouble$fShowConstantTermsSQLFloatFloat$fShowConstantTermsSQLBoolBool$fShowConstantTermsSQLCharChar$fShowConstantTermsSQLText text-1.2.1.1Data.Text.Internal.LazyText$fShowConstantTermsSQLText0Data.Text.Internal $fShowConstantTermsSQLByteStringbytestring-0.10.4.0Data.ByteString.Lazy.Internal ByteString!$fShowConstantTermsSQLByteString0Data.ByteString.Internal$fShowConstantTermsSQL[]$fShowConstantTermsSQLIntInt$fShowConstantTermsSQLInt64GHC.IntInt64$fShowConstantTermsSQLInt32Int32$fShowConstantTermsSQLInt16Int16$fProductConstructor(->) intTermsSQLstringTermsSQL floatTermsconstantTimeTermsshowMaybeTermsunsafeCastExpr ColumnSQL'stringFromColumnSQLcomposeRestrict GroupingSetsCubeRollup ColumnRefshowsAggregateColumnRefcommaedpCommashowsAggregateBitKey$fShowColumnSQL'$fFunctorColumnSQL'transformers-0.3.0.0Control.Monad.Trans.ReaderReaderTNode ProductTreeNodeAttrnodeAttrnodeTreenode growRight growProductproductrestrictProduct'restrictProduct$fFoldableProductTreeJoinLeafJust'Pi'unsafeCastRecordWidthmap definePi'Database.Record.PersistablePersistableRecordWidthMapLeftestunsafePiAppend'unsafePiAppend unsafeCastsnd'' KeyConstraintunsafeReturnKey mapConstraint columnArrayfromTableToSQLfromTableToNormalizedSQL normalizedSQLtoSQLs showQualifier columnFromIdqualifiedSQLas qualifiedFormwidthOfProjectionUnitcolumnOfProjectionUnitcolumnOfUntypedProjectionshowsQueryProductshowsJoinProduct$fFunctorQualifiedFunctorScalar NormalizedColumnsBinBinOpSetOp IntersectExceptUnion showsSetOp' showsSetOpsetBinselectPrefixSQL showUnitSQLcolumnN asColumnNprojectionUnitFromColumns projectionUnitFromScalarSubQueryunitUntypedProjection JoinContextprimeJoinContextupdateProduct' updateProduct joinProductQualifyevalQualifyPrimenewAliasAliasIdunsafeFromColumns unsafeProjectSubListuntypeProjectiontypedProjectionnotNullMaybeConstraintinsertChunkSQLfmap compareBinOp monoBinOp monoBinOp'unsafeCastPlaceHolders$fProjectableApplicativePi$fProjectableFunctorPi"$fProjectableApplicativeProjection$fProjectableFunctorProjection$$fProjectableApplicativePlaceHolders $fProjectableFunctorPlaceHolders$fProjectableIdZipPlaceHolders$fProjectableMaybeExpr$fProjectableMaybeProjection$fProjectableMaybePlaceHolders$fProjectableShowSqlProjection$fProjectableShowSqlExpr$fSqlProjectableExpr$fSqlProjectableProjection$fSqlProjectableProjection0$fSqlProjectableProjection1OperatorProjectableunsafeFlatUniOp unsafeLikeunsafeCastProjectable whensClauseunsafeUniTermFunctionunsafeProjectPlaceHolder'unsafeProjectPlaceHolder$fOperatorProjectableExpr$fOperatorProjectableExpr0$fOperatorProjectableProjection $fOperatorProjectableProjection0 Projectable$fProjectableRunIdsZipaa$fProjectableRunIdsZip(,)b$fProjectableRunIdsZip(,)b0#$fProjectableFlattenMaybeMaybeMaybe$fProjectableFlattenMaybeMaybeb$fProjectableProjectionExpr!$fProjectableProjectionProjectionAggregatedContextproject projectPiprojectPiMaybeprojectPiMaybe'projectFlattenPiMaybe$fAggregatedContextOverWindow$fAggregatedContextAggregatedupdateRestriction$fMonadAggregateRestrictings$fMonadQueryRestrictings$fMonadRestrictcRestrictings$fMonadPartitionAggregatings$fMonadAggregateAggregatings$fMonadQueryAggregatings$fMonadRestrictcAggregatingsunsafeAggregateWithTermextractTermList finalizePowerProjectableOrderingupdateOrderBys$fProjectableOrderingProjection$fMonadPartitionOrderings$fMonadAggregateOrderings$fMonadQueryOrderings$fMonadRestrictrcOrderings orderTermsControl.Monad.Trans.State.LazyStateT updateContextupdateJoinRestrictionunsafeSubQueryWithAttr$fMonadQueryQueryJoin!$fMonadQualifyQualifyRestrictings$fMonadQualifyQualifyOrderingsaggregatedQuery$fMonadRestrictFlatRestrictings extractWindow queryUnique&$fMonadQualifyUniqueQualifyQueryUnique$fMonadRestrictcAssigningstargetProjection$fMonadQualifyQualifyAssigningssubQueryQualifyFromRelation queryWithAttrjoinuniqueQueryWithAttrplaceHoldersFromRelation queryList0 addUnitPHunsafeCastPlaceHolderunsafeLiftAppend liftAppend liftAppend'$fShowRelation$fShowRestrictionrunRestriction_runUpdateTargetupdateAllColumn$fShowUpdateTarget $fShowDelete$fShowInsertQuery $fShowInsert $fShowUpdate$fShowKeyUpdate $fShowQuery targetTablerestrictedTable$fUntypeableNoFetchDelete$fUntypeableNoFetchUpdate$fUntypeableNoFetchInsertdefineHasConstraintKeyInstancecolumnTemplate'columnTemplatedefineTableDerivableInstancedefineTableDerivations'defineProductConstructorInstanceDefaultdefineWithPrimaryKeyDefaultdefineWithNotNullKeyDefaulttableSQLderivationVarNameDefaulttableVarNameDefaultrelationVarNameDefault