syb-with-class 0.6 → 0.6.1
raw patch · 3 files changed
+15/−12 lines, 3 filesdep ~template-haskellPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: template-haskell
API changes (from Hackage documentation)
Files
- Data/Generics/SYB/WithClass/Derive.hs +8/−6
- Data/Generics/SYB/WithClass/Instances.hs +4/−3
- syb-with-class.cabal +3/−3
Data/Generics/SYB/WithClass/Derive.hs view
@@ -23,7 +23,6 @@ import Language.Haskell.TH import Data.List import Control.Monad-import Data.Maybe import Data.Generics.SYB.WithClass.Basics --@@ -181,10 +180,11 @@ myType = foldl AppT (ConT name) typeParams dataCxt typ = conT ''Data `appT` varT (mkName "ctx") `appT` return typ- satCxt typ = conT ''Sat `appT` (varT (mkName "ctx") `appT` return typ)+ dataCxt' typ = return $ ClassP ''Data [VarT (mkName "ctx"), typ]+ satCxt typ = return $ ClassP ''Sat [VarT (mkName "ctx") `AppT` typ] dataCxtTypes = nub (typeParams ++ types) satCxtTypes = nub (myType : types)- context = cxt (map dataCxt dataCxtTypes ++ map satCxt satCxtTypes)+ context = cxt (map dataCxt' dataCxtTypes ++ map satCxt satCxtTypes) #endif deriveMinimalData :: Name -> Int -> Q [Dec]@@ -195,7 +195,7 @@ decs <- qOfDecs params <- replicateM nParam (newName "a") let typeQParams = map varT params- context = cxt (map (\typ -> conT ''Data `appT` typ) typeQParams)+ context = cxt (map (\typ -> classP ''Data [typ]) typeQParams) instanceType = foldl appT (conT name) typeQParams inst <-instanceD context (conT ''Data `appT` instanceType)@@ -224,8 +224,8 @@ [Constructor]) -- The constructors typeInfo d = case d of- DataD _ n ps cs _ -> return (n, ps, map conA cs)- NewtypeD _ n ps c _ -> return (n, ps, [conA c])+ DataD _ n ps cs _ -> return (n, map varName ps, map conA cs)+ NewtypeD _ n ps c _ -> return (n, map varName ps, [conA c]) _ -> error ("derive: not a data type declaration: " ++ show d) where conA (NormalC c xs) = (c, length xs, Nothing, map snd xs) conA (InfixC x1 c x2) = conA (NormalC c [x1, x2])@@ -235,6 +235,8 @@ fields = map getField xs types = map getType xs in (c, length xs, Just fields, types)+ varName (PlainTV n) = n+ varName (KindedTV n _) = n -- -- | Derives the Data and Typeable instances for a single given data type.
Data/Generics/SYB/WithClass/Instances.hs view
@@ -12,18 +12,19 @@ import Data.Array import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Lazy as L (ByteString)-import Data.Typeable import Data.Int -- So we can give Data instance for Int8, ... import Data.Word -- So we can give Data instance for Word8, ... import GHC.Real( Ratio(..) ) -- So we can give Data instance for Ratio-import GHC.IOBase -- So we can give Data instance for IO, Handle+import System.IO -- So we can give Data instance for IO, Handle import GHC.Ptr -- So we can give Data instance for Ptr import GHC.ForeignPtr -- So we can give Data instance for ForeignPtr import GHC.Stable -- So we can give Data instance for StablePtr import GHC.ST -- So we can give Data instance for ST-import GHC.Conc -- So we can give Data instance for MVar & Co.+import Data.IORef -- So we can give Data instance for IORef+import Control.Concurrent.MVar -- So we can give Data instance for MVar & Co. import qualified Data.Map as M import qualified Data.Set as S+ ------------------------------------------------------------------------------ -- -- Instances of the Data class for Prelude-like types.
syb-with-class.cabal view
@@ -1,5 +1,5 @@ Name: syb-with-class-Version: 0.6+Version: 0.6.1 License: BSD3 License-file: LICENSE Copyright: 2004 - 2008 The University of Glasgow, CWI,@@ -16,7 +16,7 @@ Classes, and Template Haskell code to generate instances, for the Scrap Your Boilerplate With Class system. Category: Data-Tested-With: GHC==6.8.3, GHC==6.10.1+Tested-With: GHC==6.12.1 Build-Type: Simple Cabal-Version: >= 1.6 @@ -25,7 +25,7 @@ location: http://patch-tag.com/r/Saizan/syb-with-class/pullrepo Library - Build-Depends: base >= 3 && < 5, template-haskell < 2.4, bytestring, array, containers+ Build-Depends: base >= 3 && < 5, template-haskell >= 2.4 && < 2.5, bytestring, array, containers Exposed-modules: Data.Generics.SYB.WithClass.Basics Data.Generics.SYB.WithClass.Context