Hello community,
here is the log from the commit of package ghc-constraints for openSUSE:Factory checked in at 2016-01-28 17:23:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-constraints (Old)
and /work/SRC/openSUSE:Factory/.ghc-constraints.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-constraints"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-constraints/ghc-constraints.changes 2016-01-08 15:23:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-constraints.new/ghc-constraints.changes 2016-01-28 17:24:35.000000000 +0100
@@ -1,0 +2,10 @@
+Wed Jan 20 09:03:54 UTC 2016 - mimi.vx@gmail.com
+
+- update to 0.8
+* Remove the need for closed type families from the new Forall.
+* Found a nicer encoding of the initial object in the category of constraints
+ using a nullary constraint.
+* binary 0.8 compatibility
+* transformers 0.5 compatibility
+
+-------------------------------------------------------------------
Old:
----
constraints-0.6.tar.gz
New:
----
constraints-0.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-constraints.spec ++++++
--- /var/tmp/diff_new_pack.DVAEXM/_old 2016-01-28 17:24:36.000000000 +0100
+++ /var/tmp/diff_new_pack.DVAEXM/_new 2016-01-28 17:24:36.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name constraints
Name: ghc-constraints
-Version: 0.6
+Version: 0.8
Release: 0
Summary: Constraint manipulation
License: BSD-2-Clause
++++++ constraints-0.6.tar.gz -> constraints-0.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/constraints.cabal new/constraints-0.8/constraints.cabal
--- old/constraints-0.6/constraints.cabal 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/constraints.cabal 2016-01-17 03:10:38.000000000 +0100
@@ -1,6 +1,6 @@
name: constraints
category: Constraints
-version: 0.6
+version: 0.8
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
@@ -17,7 +17,7 @@
This package provides a vocabulary for working with them.
build-type: Simple
-tested-with: GHC == 7.8.3, GHC == 7.7.20131027, GHC == 7.7.20131025
+tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.1, GHC == 7.10.2
extra-source-files: README.markdown
source-repository head
@@ -41,26 +41,24 @@
GADTs
build-depends:
- base >= 4.6 && < 5,
- binary >= 0.7.3 && < 0.8,
+ base >= 4.7 && < 5,
+ binary >= 0.7.3 && < 0.9,
deepseq >= 1.3 && < 1.5,
ghc-prim,
hashable >= 1.2 && < 1.3,
mtl >= 2 && < 2.3,
- transformers >= 0.2 && < 0.5,
+ transformers >= 0.2 && < 0.6,
transformers-compat >= 0.4 && < 1
if impl(ghc < 7.8)
build-depends:
newtype >= 0.2 && < 0.3,
tagged >= 0.2 && < 1
- else
- exposed-modules:
- Data.Constraint.Forall
exposed-modules:
Data.Constraint
Data.Constraint.Deferrable
+ Data.Constraint.Forall
Data.Constraint.Lifting
Data.Constraint.Unsafe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint/Forall.hs new/constraints-0.8/src/Data/Constraint/Forall.hs
--- old/constraints-0.6/src/Data/Constraint/Forall.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint/Forall.hs 2016-01-17 03:10:38.000000000 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE ScopedTypeVariables #-}
@@ -7,11 +8,14 @@
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE Trustworthy #-}
{-# LANGUAGE PolyKinds #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Constraint.Forall
-- Copyright : (C) 2011-2015 Edward Kmett,
--- (C) 2015 Ørjan Johansen,
+-- (C) 2015 Ørjan Johansen
-- License : BSD-style (see the file LICENSE)
--
-- Maintainer : Edward Kmett
@@ -95,22 +99,22 @@
-- which would be disastrous.
-- | A representation of the quantified constraint @forall a. p a@.
-type family Forall (p :: k -> Constraint) :: Constraint where
- Forall p = Forall_ p
+type family Forall (p :: k -> Constraint) :: Constraint
+type instance Forall p = Forall_ p
class p (Skolem p) => Forall_ (p :: k -> Constraint)
instance p (Skolem p) => Forall_ (p :: k -> Constraint)
-- | A representation of the quantified constraint @forall a. p (f a)@.
-type family ForallF (p :: k2 -> Constraint) (f :: k1 -> k2) :: Constraint where
- ForallF p f = ForallF_ p f
+type family ForallF (p :: k2 -> Constraint) (f :: k1 -> k2) :: Constraint
+type instance ForallF p f = ForallF_ p f
class p (f (SkolemF p f)) => ForallF_ (p :: k2 -> Constraint) (f :: k1 -> k2)
instance p (f (SkolemF p f)) => ForallF_ (p :: k2 -> Constraint) (f :: k1 -> k2)
type Forall1 p = Forall p
-- | A representation of the quantified constraint @forall f a. p (t f a)@.
-type family ForallT (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3) :: Constraint where
- ForallT p t = ForallT_ p t
+type family ForallT (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3) :: Constraint
+type instance ForallT p t = ForallT_ p t
class p (t (SkolemT1 p t) (SkolemT2 p t)) => ForallT_ (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3)
instance p (t (SkolemT1 p t) (SkolemT2 p t)) => ForallT_ (p :: k3 -> Constraint) (t :: k1 -> k2 -> k3)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint/Lifting.hs new/constraints-0.8/src/Data/Constraint/Lifting.hs
--- old/constraints-0.6/src/Data/Constraint/Lifting.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint/Lifting.hs 2016-01-17 03:10:38.000000000 +0100
@@ -112,6 +112,17 @@
instance Traversable f => Lifting Traversable (Compose f) where lifting = Sub Dict
instance Applicative f => Lifting Applicative (Compose f) where lifting = Sub Dict
instance Alternative f => Lifting Alternative (Compose f) where lifting = Sub Dict -- overconstrained
+
+#if MIN_VERSION_transformers(0,5,0)
+instance Show1 f => Lifting Show1 (Compose f) where lifting = Sub Dict
+instance Eq1 f => Lifting Eq1 (Compose f) where lifting = Sub Dict
+instance Ord1 f => Lifting Ord1 (Compose f) where lifting = Sub Dict
+instance Read1 f => Lifting Read1 (Compose f) where lifting = Sub Dict
+instance (Eq1 f, Eq1 g) => Lifting Eq (Compose f g) where lifting = Sub Dict
+instance (Ord1 f, Ord1 g) => Lifting Ord (Compose f g) where lifting = Sub Dict
+instance (Read1 f, Read1 g) => Lifting Read (Compose f g) where lifting = Sub Dict
+instance (Show1 f, Show1 g) => Lifting Show (Compose f g) where lifting = Sub Dict
+#else
instance (Functor f, Show1 f) => Lifting Show1 (Compose f) where lifting = Sub Dict
instance (Functor f, Eq1 f) => Lifting Eq1 (Compose f) where lifting = Sub Dict
instance (Functor f, Ord1 f) => Lifting Ord1 (Compose f) where lifting = Sub Dict
@@ -120,6 +131,7 @@
instance (Functor f, Ord1 f, Ord1 g) => Lifting Ord (Compose f g) where lifting = Sub Dict
instance (Functor f, Read1 f, Read1 g) => Lifting Read (Compose f g) where lifting = Sub Dict
instance (Functor f, Show1 f, Show1 g) => Lifting Show (Compose f g) where lifting = Sub Dict
+#endif
instance Functor f => Lifting Functor (Functor.Product f) where lifting = Sub Dict
instance Foldable f => Lifting Foldable (Functor.Product f) where lifting = Sub Dict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint/Unsafe.hs new/constraints-0.8/src/Data/Constraint/Unsafe.hs
--- old/constraints-0.6/src/Data/Constraint/Unsafe.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint/Unsafe.hs 2016-01-17 03:10:38.000000000 +0100
@@ -6,6 +6,9 @@
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE Unsafe #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Constraint.Unsafe
@@ -56,10 +59,19 @@
unsafeUnderive :: Coercible n o => (o -> n) -> t n :- t o
unsafeUnderive _ = unsafeCoerceConstraint
+
-- | Construct an Applicative instance from a Monad
unsafeApplicative :: forall m a. Monad m => (Applicative m => m a) -> m a
+#if __GLASGOW_HASKELL__ < 710
unsafeApplicative m = m \\ trans (unsafeCoerceConstraint :: Applicative (WrappedMonad m) :- Applicative m) ins
+#else
+unsafeApplicative m = m
+#endif
-- | Construct an Alternative instance from a MonadPlus
unsafeAlternative :: forall m a. MonadPlus m => (Alternative m => m a) -> m a
+#if __GLASGOW_HASKELL__ < 710
unsafeAlternative m = m \\ trans (unsafeCoerceConstraint :: Alternative (WrappedMonad m) :- Alternative m) ins
+#else
+unsafeAlternative m = m
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/constraints-0.6/src/Data/Constraint.hs new/constraints-0.8/src/Data/Constraint.hs
--- old/constraints-0.6/src/Data/Constraint.hs 2015-11-10 14:16:35.000000000 +0100
+++ new/constraints-0.8/src/Data/Constraint.hs 2016-01-17 03:10:38.000000000 +0100
@@ -18,6 +18,12 @@
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE RoleAnnotations #-}
#endif
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE UndecidableSuperClasses #-}
+#endif
+#if __GLASGOW_HASKELL__ >= 708 && __GLASGOW_HASKELL__ < 710
+{-# LANGUAGE NullaryTypeClasses #-}
+#endif
-----------------------------------------------------------------------------
-- |
-- Module : Data.Constraint
@@ -58,6 +64,7 @@
, weaken1, weaken2, contract
, (&&&), (***)
, trans, refl
+ , Bottom
, top, bottom
-- * Dict is fully faithful
, mapDict
@@ -79,7 +86,12 @@
#if __GLASGOW_HASKELL__ >= 707
import Data.Data
#endif
+#if __GLASGOW_HASKELL__ <= 710
import GHC.Prim (Constraint)
+#else
+import GHC.Types (Constraint)
+#endif
+import qualified GHC.Prim as Prim
-- | Values of type @'Dict' p@ capture a dictionary for a constraint of type @p@.
--
@@ -292,21 +304,14 @@
top :: a :- ()
top = Sub Dict
-type family Ex (a :: *) (c :: Constraint) :: Constraint
-type instance Ex () c = ()
-type instance Ex Bool c = c
-
-falso :: (() ~ a) :- Ex a c
-falso = Sub Dict
+-- | 'Any' inhabits every kind, including 'Constraint' but is uninhabited, making it impossible to define an instance.
+class Prim.Any => Bottom where
+ no :: Dict a
-- |
--- A bad type coercion lets you derive any constraint you want.
---
--- These are the initial arrows of the category and @(() ~ Bool)@ is the initial object
---
-- This demonstrates the law of classical logic <http://en.wikipedia.org/wiki/Principle_of_explosion "ex falso quodlibet">
-bottom :: (() ~ Bool) :- c
-bottom = falso
+bottom :: Bottom :- a
+bottom = Sub no
--------------------------------------------------------------------------------
-- Dict is fully faithful
@@ -375,7 +380,7 @@
instance Class () (b :=> a) where cls = Sub Dict
instance Class b a => () :=> Class b a where ins = Sub Dict
-instance (b :=> a) => () :=> b :=> a where ins = Sub Dict
+instance (b :=> a) => () :=> (b :=> a) where ins = Sub Dict
instance Class () () where cls = Sub Dict
instance () :=> () where ins = Sub Dict