mysql-simple-typed 0.1.1.3 → 0.1.2.0
raw patch · 3 files changed
+73/−30 lines, 3 filesdep ~mysql-simple
Dependency ranges changed: mysql-simple
Files
- mysql-simple-typed.cabal +4/−4
- src/Database/MySQL/Simple/DBmore.hs +57/−23
- src/Database/MySQL/Simple/DBmoreTH.hs +12/−3
mysql-simple-typed.cabal view
@@ -2,15 +2,15 @@ -- documentation, see http://haskell.org/cabal/users-guide/ name: mysql-simple-typed-version: 0.1.1.3+version: 0.1.2.0 synopsis: Typed extension to mysql simple--- description: +description: Provide all required bindings for use with the typedquery homepage: https://github.com/tolysz/mysql-simple-typed license: BSD3 license-file: LICENSE author: Marcin Tolysz maintainer: tolysz@gmail.com-copyright: 2014-5 Marcin Tolysz+copyright: 2014-9 Marcin Tolysz category: Database build-type: Simple extra-source-files: README.md@@ -24,7 +24,7 @@ -- other-extensions: build-depends: base >=4.5 && < 5 , mysql- , mysql-simple >= 0.2.2.5+ , mysql-simple >= 0.4.5 , typedquery , template-haskell , utf8-string
src/Database/MySQL/Simple/DBmore.hs view
@@ -5,31 +5,65 @@ import Database.MySQL.Simple.DBmoreTH -qp 11-qp 12-qp 13-qp 14-qp 15-qp 16-qp 17-qp 18-qp 19-qp 20-qp 21-qp 22-qp 23-qp 24+-- qp 11+-- qp 12+-- qp 13+-- qp 14+-- qp 15+-- qp 16+-- qp 17+-- qp 18+-- qp 19+-- qp 20+-- qp 21+-- qp 22+-- qp 23+-- qp 24 qp 25+qp 26+qp 27+qp 28+qp 29+qp 30+qp 31+qp 32+qp 33+qp 34+qp 35+qp 36+qp 37+qp 38+qp 39+qp 40+qp 41+qp 42+qp 43+qp 44+qp 45+qp 46+qp 47+qp 48+qp 49+qp 50+qp 51+qp 52+qp 53+qp 54+qp 55+qp 56+qp 57+qp 58+qp 59 -qr 16-qr 17-qr 18-qr 19-qr 20-qr 21-qr 22-qr 23-qr 24+-- qr 16+-- qr 17+-- qr 18+-- qr 19+-- qr 20+-- qr 21+-- qr 22+-- qr 23+-- qr 24 qr 25 qr 26 qr 27
src/Database/MySQL/Simple/DBmoreTH.hs view
@@ -21,10 +21,11 @@ import Language.Haskell.TH.Syntax import Control.Monad -import Prelude (map, (!!), (<), (-), (.) ,($), head, otherwise, zipWith3, Int, toInteger)+import Prelude (map, (!!), (<), (-), (.) ,($), head, otherwise, zipWith3, Int, toInteger, Maybe(..)) -- maybe add case 0 + 1 and make it being generated +clap :: Name -> Name -> Type clap t x = #if MIN_VERSION_template_haskell(2,10,0) AppT (ConT t) (VarT x)@@ -32,11 +33,19 @@ ClassP t [VarT x] #endif +instD :: Cxt -> Type -> [Dec] -> Dec+instD =+#if MIN_VERSION_template_haskell(2,11,0)+ InstanceD Nothing+#else+ InstanceD+#endif+ qp :: Int -> Q [Dec] qp k = do ns <- replicateM k (newName "a") let pre = map (clap ''Param) ns- return [ InstanceD pre (loop k ns) [fun ns] ]+ return [ instD pre (loop k ns) [fun ns] ] where loop 0 ns = AppT (TupleT k) (VarT (head ns)) loop i ns | i < k = AppT (loop (i-1) ns ) (VarT (ns !! i))@@ -52,7 +61,7 @@ vs <- newName "vs" let pre = map (clap ''Result) nsa- return [ InstanceD pre (loop k nsa) [fun nsa nsf nsv fs vs] ]+ return [ instD pre (loop k nsa) [fun nsa nsf nsv fs vs] ] where loop 0 ns = AppT (TupleT k) (VarT (head ns)) loop i ns | i < k = AppT (loop (i-1) ns ) (VarT (ns !! i))