Hello community,

here is the log from the commit of package ghc-reflection for openSUSE:Factory 
checked in at 2020-06-19 17:17:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-reflection (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-reflection.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-reflection"

Fri Jun 19 17:17:16 2020 rev:6 rq:815157 version:2.1.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-reflection/ghc-reflection.changes    
2019-12-27 13:56:27.608747936 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-reflection.new.3606/ghc-reflection.changes  
2020-06-19 17:17:18.274868155 +0200
@@ -1,0 +2,9 @@
+Tue Jun  9 09:10:57 UTC 2020 - psim...@suse.com
+
+- Update reflection to version 2.1.6.
+  # 2.1.6 [2020.05.16]
+  * Fix a bug in which `give` (and possibly `reify`, `reifyNat`, and
+    `reifySymbol`) could be unsoundly inlined by GHC 8.10 or older to produce
+    incorrect runtime results.
+
+-------------------------------------------------------------------

Old:
----
  reflection-2.1.5.tar.gz

New:
----
  reflection-2.1.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-reflection.spec ++++++
--- /var/tmp/diff_new_pack.Xvdjm2/_old  2020-06-19 17:17:19.106870511 +0200
+++ /var/tmp/diff_new_pack.Xvdjm2/_new  2020-06-19 17:17:19.110870523 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-reflection
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %global pkg_name reflection
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        2.1.5
+Version:        2.1.6
 Release:        0
 Summary:        Reifies arbitrary terms into types that can be reflected back 
into terms
 License:        BSD-3-Clause
@@ -30,6 +30,7 @@
 BuildRequires:  ghc-template-haskell-devel
 %if %{with tests}
 BuildRequires:  ghc-QuickCheck-devel
+BuildRequires:  ghc-containers-devel
 BuildRequires:  ghc-hspec-devel
 %endif
 

++++++ reflection-2.1.5.tar.gz -> reflection-2.1.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reflection-2.1.5/.travis.yml 
new/reflection-2.1.6/.travis.yml
--- old/reflection-2.1.5/.travis.yml    2001-09-09 03:46:40.000000000 +0200
+++ new/reflection-2.1.6/.travis.yml    2001-09-09 03:46:40.000000000 +0200
@@ -2,11 +2,17 @@
 #
 #   haskell-ci '--output=.travis.yml' '--config=cabal.haskell-ci' 
'cabal.project'
 #
+# To regenerate the script (for example after adjusting tested-with) run
+#
+#   haskell-ci regenerate
+#
 # For more information, see https://github.com/haskell-CI/haskell-ci
 #
-# version: 0.3.20190815
+# version: 0.10
 #
+version: ~> 1.0
 language: c
+os: linux
 dist: xenial
 git:
   # whether to recursively clone submodules
@@ -17,11 +23,12 @@
       - irc.freenode.org#haskell-lens
     skip_join: true
     template:
-      - "\"\\x0313reflection\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03 
%{build_url} %{message}\""
+      - "\x0313reflection\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 
%{build_url} %{message}"
 cache:
   directories:
     - $HOME/.cabal/packages
     - $HOME/.cabal/store
+    - $HOME/.hlint
 before_cache:
   - rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
   # remove files that are regenerated by 'cabal update'
@@ -31,40 +38,51 @@
   - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
   - rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
   - rm -rfv $CABALHOME/packages/head.hackage
-matrix:
+jobs:
   include:
-    - compiler: ghc-8.8.1
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
+    - compiler: ghc-8.10.1
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}
+      os: linux
+    - compiler: ghc-8.8.3
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-8.6.5
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-8.4.4
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-8.2.2
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-8.0.2
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-7.10.3
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-7.8.4
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-7.6.3
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.6.3","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.6.3","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-7.4.2
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.4.2","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.4.2","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-7.2.2
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.2.2","cabal-install-2.4"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.2.2","cabal-install-3.2"]}}
+      os: linux
     - compiler: ghc-7.0.4
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.0.4","cabal-install-2.4"]}}
-    - compiler: ghc-head
-      addons: 
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}}
+      addons: {"apt":{"sources":[{"sourceline":"deb 
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial 
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.0.4","cabal-install-3.2"]}}
+      os: linux
   allow_failures:
-    - compiler: ghc-head
     - compiler: ghc-7.0.4
     - compiler: ghc-7.2.2
-    - compiler: ghc-8.8.1
 before_install:
   - HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
   - WITHCOMPILER="-w $HC"
+  - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
   - HCPKG="$HC-pkg"
   - unset CC
   - CABAL=/opt/ghc/bin/cabal
@@ -73,33 +91,11 @@
   - TOP=$(pwd)
   - "HCNUMVER=$(${HC} --numeric-version|perl -ne 
'/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 
0 ? $5 != 1 : $3))')"
   - echo $HCNUMVER
-  - CABAL="$CABAL -vnormal+nowrap+markoutput"
+  - CABAL="$CABAL -vnormal+nowrap"
   - set -o pipefail
-  - |
-    echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }'           >> 
.colorful.awk
-    echo 'BEGIN { state = "output"; }'                                     >> 
.colorful.awk
-    echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }'            >> 
.colorful.awk
-    echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }'             >> 
.colorful.awk
-    echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >> 
.colorful.awk
-    echo '  if (state == "cabal") {'                                       >> 
.colorful.awk
-    echo '    print blue($0)'                                              >> 
.colorful.awk
-    echo '  } else {'                                                      >> 
.colorful.awk
-    echo '    print $0'                                                    >> 
.colorful.awk
-    echo '  }'                                                             >> 
.colorful.awk
-    echo '}'                                                               >> 
.colorful.awk
-  - cat .colorful.awk
-  - |
-    color_cabal_output () {
-      awk -f $TOP/.colorful.awk
-    }
-  - echo text | color_cabal_output
-install:
-  - ${CABAL} --version
-  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> 
/dev/null || echo '?')]"
   - TEST=--enable-tests
   - BENCH=--enable-benchmarks
   - HEADHACKAGE=false
-  - if [ $HCNUMVER -ge 80800 ] ; then HEADHACKAGE=true ; fi
   - rm -f $CABALHOME/config
   - |
     echo "verbose: normal +nowrap +markoutput"          >> $CABALHOME/config
@@ -117,18 +113,13 @@
     echo "  prefix: $CABALHOME"                         >> $CABALHOME/config
     echo "repository hackage.haskell.org"               >> $CABALHOME/config
     echo "  url: http://hackage.haskell.org/";           >> $CABALHOME/config
-  - |
-    if $HEADHACKAGE; then
-    echo "allow-newer: $($HCPKG list --simple-output | sed -E 
's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
-    echo "repository head.hackage.ghc.haskell.org"                             
           >> $CABALHOME/config
-    echo "   url: https://ghc.gitlab.haskell.org/head.hackage/";                
           >> $CABALHOME/config
-    echo "   secure: True"                                                     
           >> $CABALHOME/config
-    echo "   root-keys: 
7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d" >> 
$CABALHOME/config
-    echo "              
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329" >> 
$CABALHOME/config
-    echo "              
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >> 
$CABALHOME/config
-    echo "   key-threshold: 3"                                                 
           >> $CABALHOME/config
-    fi
+install:
+  - ${CABAL} --version
+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> 
/dev/null || echo '?')]"
   - "echo 'jobs: 2' >> $CABALHOME/config"
+  - |
+    echo "program-default-options"                >> $CABALHOME/config
+    echo "  ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config
   - cat $CABALHOME/config
   - rm -fv cabal.project cabal.project.local cabal.project.freeze
   - travis_retry ${CABAL} v2-update -v
@@ -144,13 +135,13 @@
   - cat cabal.project.local || true
   - if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
   - if [ -f "./examples/configure.ac" ]; then (cd "./examples" && autoreconf 
-i); fi
-  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output
+  - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}
   - "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed 
's/any.//'"
   - rm  cabal.project.freeze
 script:
   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
   # Packaging...
-  - ${CABAL} v2-sdist all | color_cabal_output
+  - ${CABAL} v2-sdist all
   # Unpacking...
   - mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
   - cd ${DISTDIR} || false
@@ -170,17 +161,17 @@
   - cat cabal.project.local || true
   # Building with tests and benchmarks...
   # build & run tests, build benchmarks
-  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
+  - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all
   # Testing...
-  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
+  - ${CABAL} v2-test $WITHCOMPILER ${TEST} ${BENCH} all
   # cabal check...
   - (cd ${PKGDIR_reflection} && ${CABAL} -vnormal check)
   - if [ $HCNUMVER -ge 71000 ] ; then (cd ${PKGDIR_reflection_examples} && 
${CABAL} -vnormal check) ; fi
   # haddock...
-  - ${CABAL} v2-haddock $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
+  - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH} 
all
   # Building without installed constraints for packages in global-db...
   - rm -f cabal.project.local
-  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all | 
color_cabal_output
+  - ${CABAL} v2-build $WITHCOMPILER --disable-tests --disable-benchmarks all
 
-# REGENDATA 
["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]
+# REGENDATA 
("0.10",["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"])
 # EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reflection-2.1.5/CHANGELOG.markdown 
new/reflection-2.1.6/CHANGELOG.markdown
--- old/reflection-2.1.5/CHANGELOG.markdown     2001-09-09 03:46:40.000000000 
+0200
+++ new/reflection-2.1.6/CHANGELOG.markdown     2001-09-09 03:46:40.000000000 
+0200
@@ -1,3 +1,8 @@
+# 2.1.6 [2020.05.16]
+* Fix a bug in which `give` (and possibly `reify`, `reifyNat`, and
+  `reifySymbol`) could be unsoundly inlined by GHC 8.10 or older to produce
+  incorrect runtime results.
+
 # 2.1.5 [2019.08.27]
 * Fix a bug in which `reifyNat` would yield incorrect results for very large
   `Integer`s on GHC 8.2 or later.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reflection-2.1.5/examples/reflection-examples.cabal 
new/reflection-2.1.6/examples/reflection-examples.cabal
--- old/reflection-2.1.5/examples/reflection-examples.cabal     2001-09-09 
03:46:40.000000000 +0200
+++ new/reflection-2.1.6/examples/reflection-examples.cabal     2001-09-09 
03:46:40.000000000 +0200
@@ -20,7 +20,8 @@
              , GHC == 8.2.2
              , GHC == 8.4.4
              , GHC == 8.6.5
-             , GHC == 8.8.1
+             , GHC == 8.8.3
+             , GHC == 8.10.1
 
 flag examples
   default: True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reflection-2.1.5/fast/Data/Reflection.hs 
new/reflection-2.1.6/fast/Data/Reflection.hs
--- old/reflection-2.1.5/fast/Data/Reflection.hs        2001-09-09 
03:46:40.000000000 +0200
+++ new/reflection-2.1.6/fast/Data/Reflection.hs        2001-09-09 
03:46:40.000000000 +0200
@@ -158,6 +158,17 @@
 {-# ANN module "HLint: ignore Avoid lambda" #-}
 #endif
 
+-- Due to https://gitlab.haskell.org/ghc/ghc/issues/16893, inlining
+-- unsafeCoerce too aggressively can cause optimization to become unsound on
+-- old versions of GHC. As a workaround, we mark unsafeCoerce-using definitions
+-- as NOINLINE where necessary.
+-- See https://github.com/ekmett/reflection/issues/47.
+#if __GLASGOW_HASKELL__ >= 811
+# define INLINE_UNSAFE_COERCE INLINE
+#else
+# define INLINE_UNSAFE_COERCE NOINLINE
+#endif
+
 ------------------------------------------------------------------------------
 -- Reifies
 ------------------------------------------------------------------------------
@@ -172,7 +183,7 @@
 -- | Reify a value at the type level, to be recovered with 'reflect'.
 reify :: forall a r. a -> (forall (s :: *). Reifies s a => Proxy s -> r) -> r
 reify a k = unsafeCoerce (Magic k :: Magic a r) (const a) Proxy
-{-# INLINE reify #-}
+{-# INLINE_UNSAFE_COERCE reify #-}
 
 #if __GLASGOW_HASKELL__ >= 707
 instance KnownNat n => Reifies n Integer where
@@ -215,6 +226,7 @@
                              (if n < 0 then throw Underflow else n)
 # endif
                              Proxy
+{-# INLINE_UNSAFE_COERCE reifyNat #-}
 
 
--------------------------------------------------------------------------------
 -- KnownSymbol
@@ -233,7 +245,7 @@
 -- "hello"
 reifySymbol :: forall r. String -> (forall (n :: Symbol). KnownSymbol n => 
Proxy n -> r) -> r
 reifySymbol n k = unsafeCoerce (MagicSymbol k :: MagicSymbol r) n Proxy
-
+{-# INLINE_UNSAFE_COERCE reifySymbol #-}
 #endif
 
 ------------------------------------------------------------------------------
@@ -256,7 +268,7 @@
 -- are in scope, then the behavior is implementation defined.
 give :: forall a r. a -> (Given a => r) -> r
 give a k = unsafeCoerce (Gift k :: Gift a r) a
-{-# INLINE give #-}
+{-# INLINE_UNSAFE_COERCE give #-}
 
 
--------------------------------------------------------------------------------
 -- Explicit Numeric Reflection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reflection-2.1.5/reflection.cabal 
new/reflection-2.1.6/reflection.cabal
--- old/reflection-2.1.5/reflection.cabal       2001-09-09 03:46:40.000000000 
+0200
+++ new/reflection-2.1.6/reflection.cabal       2001-09-09 03:46:40.000000000 
+0200
@@ -1,5 +1,5 @@
 name:           reflection
-version:        2.1.5
+version:        2.1.6
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett, Elliott Hird, Oleg Kiselyov and Chung-chieh 
Shan
@@ -37,7 +37,8 @@
              , GHC == 8.2.2
              , GHC == 8.4.4
              , GHC == 8.6.5
-             , GHC == 8.8.1
+             , GHC == 8.8.3
+             , GHC == 8.10.1
 
 extra-source-files:
   examples/reflection-examples.cabal
@@ -112,11 +113,13 @@
   hs-source-dirs: tests
   main-is: Spec.hs
   other-modules: ReifyNatSpec
+                 T47Spec
   ghc-options: -Wall
   default-language: Haskell98
   build-tool-depends: hspec-discover:hspec-discover >= 1.8
   build-depends:
-    base       >= 2 && < 5,
-    hspec      >= 2 && < 3,
-    QuickCheck >= 2 && < 3,
+    base       >= 2   && < 5,
+    containers >= 0.1 && < 0.7,
+    hspec      >= 2   && < 3,
+    QuickCheck >= 2   && < 3,
     reflection
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/reflection-2.1.5/tests/T47Spec.hs 
new/reflection-2.1.6/tests/T47Spec.hs
--- old/reflection-2.1.5/tests/T47Spec.hs       1970-01-01 01:00:00.000000000 
+0100
+++ new/reflection-2.1.6/tests/T47Spec.hs       2001-09-09 03:46:40.000000000 
+0200
@@ -0,0 +1,64 @@
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE UndecidableInstances #-}
+-- | A regression test for issue #47.
+module T47Spec where
+
+import qualified Data.Map as M
+import Data.Map (Map)
+import Data.Reflection
+import Test.Hspec
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec =
+  describe "Given" $ do
+    it "should give Normal properly" $
+      give Normal (toJSON (Foo Bar)) `shouldBe`
+      Object (M.fromList [("Foo",String "Bar")])
+    it "should give ViaShow properly" $
+      give ViaShow (toJSON (Foo Bar)) `shouldBe`
+      Object (M.fromList [("Foo",String "SHOWBAR")])
+
+----------------------------------------------------------------------------
+-- Types
+----------------------------------------------------------------------------
+
+data Foo = Foo Bar
+
+instance Show Foo where
+  show _ = "SHOWFOO"
+
+data Bar = Bar | BarBar
+
+instance Show Bar where
+  show _ = "SHOWBAR"
+
+----------------------------------------------------------------------------
+-- ToJSON instances
+----------------------------------------------------------------------------
+
+instance Given Style => ToJSON Foo where
+  toJSON (Foo x) = Object $ M.singleton "Foo" (toJSON x)
+
+instance Given Style => ToJSON Bar where
+  toJSON x = case given of
+    Normal -> String $ case x of
+                Bar    -> "Bar"
+                BarBar -> "BarBar"
+    ViaShow -> String $ show x
+
+data Style = Normal | ViaShow
+
+----------------------------------------------------------------------------
+-- Minimized aeson
+----------------------------------------------------------------------------
+
+class ToJSON a where
+  toJSON :: a -> Value
+
+data Value
+  = Object !(Map String Value)
+  | String !String
+  deriving (Eq, Show)


Reply via email to