packages feed

syb 0.5.1 → 0.6

raw patch · 3 files changed

+95/−68 lines, 3 files

Files

syb.cabal view
@@ -1,64 +1,65 @@-name:                 syb-version:              0.5.1-license:              BSD3-license-file:         LICENSE-author:               Ralf Lammel, Simon Peyton Jones, Jose Pedro Magalhaes-maintainer:           generics@haskell.org-homepage:             http://www.cs.uu.nl/wiki/GenericProgramming/SYB-bug-reports:          http://code.google.com/p/scrapyourboilerplate/issues/list-synopsis:             Scrap Your Boilerplate-description:-    This package contains the generics system described in the-    /Scrap Your Boilerplate/ papers (see-    <http://www.cs.uu.nl/wiki/GenericProgramming/SYB>).-    It defines the @Data@ class of types permitting folding and unfolding-    of constructor applications, instances of this class for primitive-    types, and a variety of traversals.--category:               Generics-stability:              provisional-build-type:             Simple-cabal-version:          >= 1.8--extra-source-files:     tests/*.hs,-                        README--source-repository head-  type:                 git-  location:             https://github.com/dreixel/syb--Library-  hs-source-dirs:         src-  build-depends:          base >= 4.0 && < 5.0-  exposed-modules:        Data.Generics,-                          Data.Generics.Basics,-                          Data.Generics.Instances,-                          Data.Generics.Aliases,-                          Data.Generics.Schemes,-                          Data.Generics.Text,-                          Data.Generics.Twins,-                          Data.Generics.Builders,--                          Generics.SYB,-                          Generics.SYB.Basics,-                          Generics.SYB.Instances,-                          Generics.SYB.Aliases,-                          Generics.SYB.Schemes,-                          Generics.SYB.Text,-                          Generics.SYB.Twins,-                          Generics.SYB.Builders--  if impl(ghc < 6.12)-    ghc-options:          -package-name syb--  ghc-options:            -Wall--test-suite unit-tests-  type:                   exitcode-stdio-1.0-  hs-source-dirs:         tests-  main-is:                Main.hs-  build-depends:          base-                        , syb-                        , HUnit-                        , containers-                        , mtl+name:                 syb
+version:              0.6
+license:              BSD3
+license-file:         LICENSE
+author:               Ralf Lammel, Simon Peyton Jones, Jose Pedro Magalhaes
+maintainer:           generics@haskell.org
+homepage:             http://www.cs.uu.nl/wiki/GenericProgramming/SYB
+bug-reports:          http://code.google.com/p/scrapyourboilerplate/issues/list
+synopsis:             Scrap Your Boilerplate
+description:
+    This package contains the generics system described in the
+    /Scrap Your Boilerplate/ papers (see
+    <http://www.cs.uu.nl/wiki/GenericProgramming/SYB>).
+    It defines the @Data@ class of types permitting folding and unfolding
+    of constructor applications, instances of this class for primitive
+    types, and a variety of traversals.
+
+category:               Generics
+stability:              provisional
+build-type:             Simple
+cabal-version:          >= 1.8
+tested-with:            GHC >=7.0 && <=7.10.2, GHC==7.11.*
+
+extra-source-files:     tests/*.hs,
+                        README
+
+source-repository head
+  type:                 git
+  location:             https://github.com/dreixel/syb
+
+Library
+  hs-source-dirs:         src
+  build-depends:          base >= 4.0 && < 5.0
+  exposed-modules:        Data.Generics,
+                          Data.Generics.Basics,
+                          Data.Generics.Instances,
+                          Data.Generics.Aliases,
+                          Data.Generics.Schemes,
+                          Data.Generics.Text,
+                          Data.Generics.Twins,
+                          Data.Generics.Builders,
+
+                          Generics.SYB,
+                          Generics.SYB.Basics,
+                          Generics.SYB.Instances,
+                          Generics.SYB.Aliases,
+                          Generics.SYB.Schemes,
+                          Generics.SYB.Text,
+                          Generics.SYB.Twins,
+                          Generics.SYB.Builders
+
+  if impl(ghc < 6.12)
+    ghc-options:          -package-name syb
+
+  ghc-options:            -Wall
+
+test-suite unit-tests
+  type:                   exitcode-stdio-1.0
+  hs-source-dirs:         tests
+  main-is:                Main.hs
+  build-depends:          base
+                        , syb
+                        , HUnit
+                        , containers
+                        , mtl
tests/Datatype.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-}
 {-# OPTIONS -fglasgow-exts #-}
 
 -- These are simple tests to observe (data)type representations.
@@ -16,8 +17,10 @@ -- Some terms and corresponding type representations
 myTerm     = undefined :: MyDataType Int
 myTypeRep  = typeOf myTerm            -- type representation in Typeable
-myTyCon    = typeRepTyCon myTypeRep   -- type constructor via Typeable
 myDataType = dataTypeOf myTerm        -- datatype representation in Data
+
+#if MIN_VERSION_base(4,5,0)
+myTyCon    = typeRepTyCon myTypeRep   -- type constructor via Typeable
 myString1  = tyConName myTyCon        -- type constructor via Typeable
 myString2  = dataTypeName myDataType  -- type constructor via Data
 
@@ -29,6 +32,24 @@             , ( tyconModule myString2
             , ( tyconUQname myString2
             ))))))
-       ~=? output
+       ~?= output
 
-output = "(MyDataType Int,(DataType {tycon = \"Datatype.MyDataType\", datarep = AlgRep [MyDataType]},(\"\",(\"MyDataType\",(\"Datatype\",\"MyDataType\")))))"+#if __GLASGOW_HASKELL__ >= 709
+-- In GHC 7.10 module name is stripped from DataType
+output = "(MyDataType Int,(DataType {tycon = \"MyDataType\", datarep = AlgRep [MyDataType]},(\"\",(\"MyDataType\",(\"\",\"MyDataType\")))))"
+#else
+output = "(MyDataType Int,(DataType {tycon = \"Datatype.MyDataType\", datarep = AlgRep [MyDataType]},(\"\",(\"MyDataType\",(\"Datatype\",\"MyDataType\")))))"
+#endif
+
+#else
+
+tests = show ( myTypeRep, myDataType )
+        ~?= output
+
+#if __GLASGOW_HASKELL__ >= 701
+output = "(MyDataType Int,DataType {tycon = \"Datatype.MyDataType\", datarep = AlgRep [MyDataType]})"
+#else
+output = "(Datatype.MyDataType Int,DataType {tycon = \"Datatype.MyDataType\", datarep = AlgRep [MyDataType]})"
+#endif
+
+#endif
tests/Newtype.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-}
 {-# OPTIONS -fglasgow-exts #-}
 
 module Newtype (tests) where
@@ -10,6 +11,10 @@ 
 newtype T = MkT Int deriving( Typeable )
 
-tests = show (typeOf (undefined :: T)) ~=? output
+tests = show (typeOf (undefined :: T)) ~?= output
 
+#if __GLASGOW_HASKELL__ >= 701
 output = "T"
+#else
+output = "Newtype.T"
+#endif