packages feed

tuple-hlist 0.1.0.8 → 0.2.0.0

raw patch · 4 files changed

+27/−23 lines, 4 filesdep ~HListdep ~base

Dependency ranges changed: HList, base

Files

Tools/IncompleteHList.hs view
@@ -2,6 +2,8 @@ {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeOperators #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE GADTs #-}  {- | This module contains overloaded functions for creating an HList from a tuple or@@ -10,7 +12,7 @@ module Data.Tuple.HList (HLst(toHList, fromHList)) where  import Data.Tuple.OneTuple (OneTuple(OneTuple))-import Data.HList (HNil(HNil), HCons(HCons), (:*:), hEnd, hBuild)+import Data.HList (HList(HNil, HCons), hEnd, hBuild)  class HLst a b | a -> b, b -> a where     -- |Creates an HList from a tuple.@@ -18,7 +20,7 @@     -- |Creates a tuple from an HList.     fromHList :: b -> a -instance HLst (OneTuple a1) (a1 :*: HNil) where+instance HLst (OneTuple a1) (HList '[a1]) where     toHList   (OneTuple a1)   = hEnd $ hBuild a1     fromHList (HCons a1 HNil) = OneTuple a1 
Tools/generateInstances.hs view
@@ -23,6 +23,6 @@         tupleType      =  tuple         tuplePattern   = tuple         tupleConstruct = tuple-        hlistType      = "(" ++ intercalate " :*: " (vars ++ ["HNil"]) ++ ")"+        hlistType      = "(HList '[" ++ intercalate ", " vars ++ "])"         hlistPattern   = intercalate " " (map ("(HCons "++) vars) ++ " HNil" ++ take i (repeat ')')         hlistConstruct = "hEnd $ hBuild " ++ unwords vars
src/Data/Tuple/HList.hs view
@@ -2,6 +2,8 @@ {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeOperators #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE GADTs #-}  {- | This module contains overloaded functions for creating an HList from a tuple or@@ -10,7 +12,7 @@ module Data.Tuple.HList (HLst(toHList, fromHList)) where  import Data.Tuple.OneTuple (OneTuple(OneTuple))-import Data.HList (HNil(HNil), HCons(HCons), (:*:), hEnd, hBuild)+import Data.HList (HList(HNil, HCons), hEnd, hBuild)  class HLst a b | a -> b, b -> a where     -- |Creates an HList from a tuple.@@ -18,64 +20,64 @@     -- |Creates a tuple from an HList.     fromHList :: b -> a -instance HLst (OneTuple a1) (a1 :*: HNil) where+instance HLst (OneTuple a1) (HList '[a1]) where     toHList   (OneTuple a1)   = hEnd $ hBuild a1     fromHList (HCons a1 HNil) = OneTuple a1  ---- The code below is automatically generated by Tools/generateInstances.hs ---- -instance HLst (a1, a2) (a1 :*: a2 :*: HNil) where+instance HLst (a1, a2) (HList '[a1, a2]) where     toHList (a1, a2) = hEnd $ hBuild a1 a2     fromHList (HCons a1 (HCons a2 HNil)) = (a1, a2) -instance HLst (a1, a2, a3) (a1 :*: a2 :*: a3 :*: HNil) where+instance HLst (a1, a2, a3) (HList '[a1, a2, a3]) where     toHList (a1, a2, a3) = hEnd $ hBuild a1 a2 a3     fromHList (HCons a1 (HCons a2 (HCons a3 HNil))) = (a1, a2, a3) -instance HLst (a1, a2, a3, a4) (a1 :*: a2 :*: a3 :*: a4 :*: HNil) where+instance HLst (a1, a2, a3, a4) (HList '[a1, a2, a3, a4]) where     toHList (a1, a2, a3, a4) = hEnd $ hBuild a1 a2 a3 a4     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 HNil)))) = (a1, a2, a3, a4) -instance HLst (a1, a2, a3, a4, a5) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5) (HList '[a1, a2, a3, a4, a5]) where     toHList (a1, a2, a3, a4, a5) = hEnd $ hBuild a1 a2 a3 a4 a5     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 HNil))))) = (a1, a2, a3, a4, a5) -instance HLst (a1, a2, a3, a4, a5, a6) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6) (HList '[a1, a2, a3, a4, a5, a6]) where     toHList (a1, a2, a3, a4, a5, a6) = hEnd $ hBuild a1 a2 a3 a4 a5 a6     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 HNil)))))) = (a1, a2, a3, a4, a5, a6) -instance HLst (a1, a2, a3, a4, a5, a6, a7) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7) (HList '[a1, a2, a3, a4, a5, a6, a7]) where     toHList (a1, a2, a3, a4, a5, a6, a7) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 HNil))))))) = (a1, a2, a3, a4, a5, a6, a7) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8) (HList '[a1, a2, a3, a4, a5, a6, a7, a8]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 HNil)))))))) = (a1, a2, a3, a4, a5, a6, a7, a8) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 HNil))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 HNil)))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 HNil))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 HNil)))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: a13 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 (HCons a13 HNil))))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: a13 :*: a14 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 (HCons a13 (HCons a14 HNil)))))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) -instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: a13 :*: a14 :*: a15 :*: HNil) where+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15]) where     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 (HCons a13 (HCons a14 (HCons a15 HNil))))))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
tuple-hlist.cabal view
@@ -1,5 +1,5 @@ name:                tuple-hlist-version:             0.1.0.8+version:             0.2.0.0 synopsis:            Functions to convert between tuples and HLists. description:         Functions to convert between tuples and HLists, overloaded on tuple size. homepage:            http://github.com/dudebout/tuple-hlist@@ -7,7 +7,7 @@ license-file:        LICENSE author:              Nicolas Dudebout maintainer:          Nicolas Dudebout <nicolas.dudebout@gatech.edu>-copyright:           (c) 2012, Nicolas Dudebout <nicolas.dudebout@gatech.edu>+copyright:           (c) 2012-2014, Nicolas Dudebout <nicolas.dudebout@gatech.edu> category:            Data build-type:          Simple cabal-version:       >=1.8@@ -19,9 +19,9 @@  library   exposed-modules:     Data.Tuple.HList-  build-depends:       base     >= 4.5 && < 5+  build-depends:       base     >= 4.6 && < 5                      , OneTuple >= 0.2 && < 0.3-                     , HList    >= 0.2 && < 0.3+                     , HList    >= 0.3 && < 0.4   hs-source-dirs:      src  source-repository head