92~n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-Inferred Type represent SQL keywords.n,Diff String type for low-cost concatination.oMake n from pqShow n into prn is empty or not.sWrap n into tUnwrap  into nUMake  from StringVShow u) default concatination separate by space.vY type with OverloadedString extension, can be involved same list with string literals. ,selectFoo = [SELECT, "a, b, c", FROM, "foo"]d  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTnwoqrxstUVuvyz{]  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTnoqrstUVTTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  nwoqrxstUVuvyz{2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-Inferred| Separate  list with delimiter  and map to p list.W Concatinate  list like unwords on p list.} Concatinate p list into one .X Separate  list with delimiter  and concatinate into one .YDo X and enclose by paren~Define binary operator on ? type. Result is not delimited by whitespace like concat on p list.ZDefine binary operator on < type. Result is delimited by whitespace like unwords on p list.[0Binary operator to create qualified name on SQL.\0Binary operator to create comma separated words.]8Binary operator for SQL string expression concatination.^&Binary eq operator for SQL expression._*Binary not eq operator for SQL expression.`&Binary lt operator for SQL expression.a&Binary le operator for SQL expression.b&Binary gt operator for SQL expression.c&Binary ge operator for SQL expression.d#Binary operator for SQL name alias.eBinary  % operator for SQL boolean expression.fBinary  % operator for SQL boolean expression.gKFold operation using binary operator with empty result of zero length case.hDefine unary operator on  type represeted by specified 7. Result is delimited by whitespace like unwords on p list.i$Uni operator to create Parend words.jBinary  operator for SQL.k#Define uni operator of string from  uni operator.l&Define binary operator of string from  binary operator.|W}XY~Z[\]^_`abcdefgBinary operator used in fold List to foldResulthijklWXYZ[\]^_`abcdefghijklWXYZld[\]^`abc_efjghik|W}XY~Z[\]^_`abcdefghijkl \]^_`abcefj2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-InferredmConcatinate keywords into p like unwordsmX  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVmXTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  UVmm2013 Kei HibinoBSD3ex8k.hibino@gmail.com experimentalunknown Safe-Inferredn  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}s~sql-words-0.0.1.1Language.SQL.Keyword.TypeLanguage.SQL.Keyword.Concat"Language.SQL.Keyword.Internal.TypeLanguage.SQL.KeywordKeywordSequenceINTERVAL TIMESTAMPTIMEDATEINNULLISEXISTSNOTORANDSIMILARLIKETHENELSEWHENENDCASE LAST_VALUE FIRST_VALUELEADLAG CUME_DIST PERCENT_RANK ROW_NUMBERRANK DENSE_RANK PARTITIONOVERMERGEVALUESINTOINSERTWHEREDEFAULTSETUPDATEOUTERNATURALFULLRIGHTLEFTINNERJOINWITHASFROM RETURNINGUSINGDELETE INTERSECTEXCEPTUNIONONLYROWSROWNEXTFIRSTFETCHLIMITFORHAVINGSETSGROUPINGROLLUPCUBEDESCASCBYORDERSOMEANYEVERYMINMAXAVGSUMCOUNTGROUPONDISTINCTALLSELECTwordwordShowunwords'sepBy parenSepBy defineBinOp<.>|*|.||..=..<>..<..<=..>..>=.asandorfold defineUniOpparenin'strUniOpstrBinOp unwordsSQLDStringdStringbaseGHC.BaseString showDStringisEmptyDString fromDString toDString$fMonoidKeyword$fIsStringKeyworddspace$fMonoidDString $fReadDString $fShowDStringsepBy' concatStr defineBinOp'concat'