content: 
  
  > {-# LANGUAGE QuasiQuotes,OverloadedStrings,TemplateHaskell #-}
  >
  > module Database.HsSqlPpp.Tests.Parsing.CombineQueryExprs (combineQueryExprs) where
  >
  > import Database.HsSqlPpp.Utils.Here
  >
  > import Database.HsSqlPpp.Syntax
  
  > import Database.HsSqlPpp.Tests.Parsing.Utils
  > import Database.HsSqlPpp.Tests.TestTypes
  
  > import qualified Data.Text as T
  
  > combineQueryExprs :: Item
  > combineQueryExprs =
  >    Group "combineSelects"
  >    [q "select a from tbl\n\
  >       \except\n\
  >       \select a from tbl1;"
  >     $ cq Except stbl stbl1
  >    ,q "select a from tbl where true\n\
  >         \except\n\
  >         \select a from tbl1 where true;"
  >       $ cq Except
  >             (stbl {selWhere = Just lTrue})
  >             (stbl1 {selWhere = Just lTrue})
  >    ,q "select a from tbl\n\
  >         \union\n\
  >         \select a from tbl1;"
  >       $ cq Union stbl stbl1
  >    ,q "select a from tbl\n\
  >         \union all\n\
  >         \select a from tbl1;"
  >       $ cq UnionAll stbl stbl1
  >    ,q "(select 1 union select 2) union select 3;"
  >       $ cq Union (cq Union (sel 1) (sel 2)) (sel 3)
  >    ,q "select 1 union (select 2 union select 3);"
  >       $ cq Union (sel 1) (cq Union (sel 2) (sel 3))
  >    ,q [here|
  >          with a as (select a from tbl),
  >               b as (select a from tbl1)
  >               select 1; |]
  >          $ with [("a",stbl)
  >                 ,("b",stbl1)] $ sel 1
  >    ,q [here|
  >          with a as (select a from tbl),
  >               b as (select a from tbl1)
  >               select 1
  >               union select 2; |]
  >          $ with [("a",stbl)
  >                 ,("b",stbl1)] $ cq Union (sel 1) (sel 2)
  >    ]
  >    where
  >      stbl = makeSelect
  >             {selSelectList = sl [si $ ei "a"]
  >             ,selTref = [tref "tbl"]}
  >      stbl1 = makeSelect
  >              {selSelectList = sl [si $ ei "a"]
  >              ,selTref = [tref "tbl1"]}
  >      sel :: Int -> QueryExpr
  >      sel n = makeSelect {selSelectList = sl [si $ num $ T.pack $ show n]}
  >      q = ParseQueryExpr defaultParseFlags
  >      cq = CombineQueryExpr ea
  