packages feed

constraints 0.12 → 0.13

raw patch · 5 files changed

+83/−14 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Data.Constraint: instance () :: Constraint Data.Constraint.:=> () :: Constraint
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> Data.Bits.Bits GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> Data.Bits.Bits GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> Data.Bits.Bits GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> Data.Bits.Bits GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> Data.Bits.Bits GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Alternative GHC.Maybe.Maybe
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Alternative []
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Applicative ((->) a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Applicative (Data.Either.Either a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Applicative GHC.Maybe.Maybe
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Applicative GHC.Types.IO
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Applicative []
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor ((,) a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor ((->) a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor (Data.Either.Either a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor (Data.Functor.Const.Const a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor Data.Functor.Identity.Identity
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor GHC.Maybe.Maybe
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor GHC.Types.IO
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Functor []
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monad ((->) a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monad (Data.Either.Either a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monad Data.Functor.Identity.Identity
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monad GHC.Types.IO
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monad []
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.MonadPlus GHC.Maybe.Maybe
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.MonadPlus []
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monoid ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monoid GHC.Types.Ordering
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Monoid [a]
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Semigroup ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Semigroup (Data.Constraint.Dict a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Semigroup GHC.Types.Ordering
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Base.Semigroup [a]
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq (Data.Constraint.Dict a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq (a Data.Constraint.:- b)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord (Data.Constraint.Dict a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord (a Data.Constraint.:- b)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Char
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Bounded ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Char
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Ordering
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Char
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Ordering
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Float.Floating GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Float.Floating GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Float.RealFloat GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Float.RealFloat GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Num.Num GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Num.Num GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Num.Num GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Num.Num GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Num.Num GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Num.Num GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read GHC.Types.Char
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read GHC.Types.Ordering
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Read.Read GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Fractional GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Fractional GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Integral GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Integral GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Integral GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Integral GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Real GHC.Integer.Type.Integer
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Real GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Real GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Real GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Real GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.Real GHC.Types.Word
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.RealFrac GHC.Types.Double
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Real.RealFrac GHC.Types.Float
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show ()
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show (Data.Constraint.Dict a)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show (a Data.Constraint.:- b)
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show GHC.Natural.Natural
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show GHC.Types.Bool
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show GHC.Types.Char
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show GHC.Types.Int
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show GHC.Types.Ordering
- Data.Constraint: instance () :: Constraint Data.Constraint.:=> GHC.Show.Show GHC.Types.Word
- Data.Constraint: instance (b Data.Constraint.:=> a) => () :: Constraint Data.Constraint.:=> (b Data.Constraint.:=> a)
- Data.Constraint: instance Data.Constraint.Class b a => () :: Constraint Data.Constraint.:=> Data.Constraint.Class b a
- Data.Constraint: instance forall k (a :: k) (b :: k). Data.Constraint.HasDict (a Data.Type.Equality.~ b) (a Data.Type.Equality.:~: b)
- Data.Constraint: instance forall k2 k1 (a :: k1) (b :: k2). Data.Constraint.HasDict (a GHC.Types.~~ b) (a Data.Type.Equality.:~~: b)
- Data.Constraint.Deferrable: data (:~:) (a :: k) (b :: k) :: forall k. () => k -> k -> Type
- Data.Constraint.Deferrable: data (:~~:) (a :: k1) (b :: k2) :: forall k1 k2. () => k1 -> k2 -> Type
- Data.Constraint.Deferrable: instance forall k (a :: k) (b :: k). (Data.Typeable.Internal.Typeable k, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b) => Data.Constraint.Deferrable.Deferrable (a Data.Type.Equality.~ b)
- Data.Constraint.Forall: instance (p Data.Type.Equality.~ c) => Data.Constraint.Forall.InstV p c
- Data.Constraint.Forall: instance forall k (p :: k -> GHC.Types.Constraint) (a :: k) (c :: GHC.Types.Constraint). (p a Data.Type.Equality.~ c) => Data.Constraint.Forall.InstV p c
- Data.Constraint.Forall: instance forall k1 k2 (p :: k2 -> GHC.Types.Constraint) (f :: k1 -> k2) (a :: k1). p (f a) => Data.Constraint.Forall.ComposeC p f a
- Data.Constraint.Forall: instance forall k1 k2 (p :: k2 -> GHC.Types.Constraint) (f :: k1 -> k2). Data.Constraint.Forall.Forall (Data.Constraint.Forall.ComposeC p f) => Data.Constraint.Forall.ForallF p f
- Data.Constraint.Forall: instance forall k1 k2 k3 (p :: k3 -> GHC.Types.Constraint) (t :: k1 -> k2 -> k3) (a :: k1) (b :: k2). p (t a b) => Data.Constraint.Forall.R p t a b
- Data.Constraint.Forall: instance forall k1 k2 k3 (p :: k3 -> GHC.Types.Constraint) (t :: k1 -> k2 -> k3) (a :: k1). Data.Constraint.Forall.Forall (Data.Constraint.Forall.R p t a) => Data.Constraint.Forall.Q p t a
- Data.Constraint.Forall: instance forall k1 k2 k3 k4 (p :: k4 -> GHC.Types.Constraint) (t :: (k1 -> k2) -> k3 -> k4). Data.Constraint.Forall.Forall (Data.Constraint.Forall.Q p t) => Data.Constraint.Forall.ForallT p t
- Data.Constraint.Lifting: instance Data.Constraint.Lifting.Lifting2 GHC.Arr.Ix (,)
- Data.Constraint.Lifting: instance GHC.Arr.Ix a => Data.Constraint.Lifting.Lifting GHC.Arr.Ix ((,) a)
+ Data.Constraint: implied :: forall a b. (a => b) => a :- b
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> (() :: Constraint)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> Data.Bits.Bits GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> Data.Bits.Bits GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> Data.Bits.Bits GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> Data.Bits.Bits GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> Data.Bits.Bits GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Alternative GHC.Maybe.Maybe
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Alternative []
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Applicative ((->) a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Applicative (Data.Either.Either a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Applicative GHC.Maybe.Maybe
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Applicative GHC.Types.IO
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Applicative []
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor ((,) a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor ((->) a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor (Data.Either.Either a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor (Data.Functor.Const.Const a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor Data.Functor.Identity.Identity
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor GHC.Maybe.Maybe
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor GHC.Types.IO
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Functor []
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monad ((->) a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monad (Data.Either.Either a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monad Data.Functor.Identity.Identity
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monad GHC.Types.IO
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monad []
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.MonadPlus GHC.Maybe.Maybe
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.MonadPlus []
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monoid ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monoid GHC.Types.Ordering
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Monoid [a]
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Semigroup ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Semigroup (Data.Constraint.Dict a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Semigroup GHC.Types.Ordering
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Base.Semigroup [a]
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq (Data.Constraint.Dict a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq (a Data.Constraint.:- b)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Eq GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord (Data.Constraint.Dict a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord (a Data.Constraint.:- b)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Char
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Classes.Ord GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Bounded ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Char
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Ordering
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Bounded GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Char
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Ordering
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Enum.Enum GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Float.Floating GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Float.Floating GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Float.RealFloat GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Float.RealFloat GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Num.Num GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Num.Num GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Num.Num GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Num.Num GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Num.Num GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Num.Num GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read GHC.Types.Char
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read GHC.Types.Ordering
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Read.Read GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Fractional GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Fractional GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Integral GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Integral GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Integral GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Integral GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Real GHC.Integer.Type.Integer
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Real GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Real GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Real GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Real GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.Real GHC.Types.Word
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.RealFrac GHC.Types.Double
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Real.RealFrac GHC.Types.Float
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show ()
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show (Data.Constraint.Dict a)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show (a Data.Constraint.:- b)
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show GHC.Natural.Natural
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show GHC.Types.Bool
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show GHC.Types.Char
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show GHC.Types.Int
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show GHC.Types.Ordering
+ Data.Constraint: instance (() :: Constraint) Data.Constraint.:=> GHC.Show.Show GHC.Types.Word
+ Data.Constraint: instance (b Data.Constraint.:=> a) => (() :: Constraint) Data.Constraint.:=> (b Data.Constraint.:=> a)
+ Data.Constraint: instance Data.Constraint.Class b a => (() :: Constraint) Data.Constraint.:=> Data.Constraint.Class b a
+ Data.Constraint: instance forall k (a :: k) (b :: k). Data.Constraint.HasDict (a GHC.Types.~ b) (a Data.Type.Equality.:~: b)
+ Data.Constraint: instance forall k1 k2 (a :: k1) (b :: k2). Data.Constraint.HasDict (a GHC.Types.~~ b) (a Data.Type.Equality.:~~: b)
+ Data.Constraint.Deferrable: data (a :: k) :~: (b :: k)
+ Data.Constraint.Deferrable: instance forall k (a :: k) (b :: k). (Data.Typeable.Internal.Typeable k, Data.Typeable.Internal.Typeable a, Data.Typeable.Internal.Typeable b) => Data.Constraint.Deferrable.Deferrable (a GHC.Types.~ b)
+ Data.Constraint.Forall: instance (p GHC.Types.~ c) => Data.Constraint.Forall.InstV p c
+ Data.Constraint.Forall: instance forall k (p :: k -> GHC.Types.Constraint) (a :: k) (c :: GHC.Types.Constraint). (p a GHC.Types.~ c) => Data.Constraint.Forall.InstV p c
+ Data.Constraint.Forall: instance forall k2 k1 (p :: k2 -> GHC.Types.Constraint) (f :: k1 -> k2) (a :: k1). p (f a) => Data.Constraint.Forall.ComposeC p f a
+ Data.Constraint.Forall: instance forall k2 k1 (p :: k2 -> GHC.Types.Constraint) (f :: k1 -> k2). Data.Constraint.Forall.Forall (Data.Constraint.Forall.ComposeC p f) => Data.Constraint.Forall.ForallF p f
+ Data.Constraint.Forall: instance forall k3 k1 k2 (p :: k3 -> GHC.Types.Constraint) (t :: k1 -> k2 -> k3) (a :: k1) (b :: k2). p (t a b) => Data.Constraint.Forall.R p t a b
+ Data.Constraint.Forall: instance forall k3 k1 k2 (p :: k3 -> GHC.Types.Constraint) (t :: k1 -> k2 -> k3) (a :: k1). Data.Constraint.Forall.Forall (Data.Constraint.Forall.R p t a) => Data.Constraint.Forall.Q p t a
+ Data.Constraint.Forall: instance forall k4 k1 k2 k3 (p :: k4 -> GHC.Types.Constraint) (t :: (k1 -> k2) -> k3 -> k4). Data.Constraint.Forall.Forall (Data.Constraint.Forall.Q p t) => Data.Constraint.Forall.ForallT p t
+ Data.Constraint.Lifting: instance Data.Constraint.Lifting.Lifting2 GHC.Ix.Ix (,)
+ Data.Constraint.Lifting: instance GHC.Ix.Ix a => Data.Constraint.Lifting.Lifting GHC.Ix.Ix ((,) a)
+ Data.Constraint.Symbol: infixr 5 ++
+ Data.Constraint.Symbol: type (m :: Symbol) ++ (n :: Symbol) = AppendSymbol m n
- Data.Constraint.Deferrable: [HRefl] :: forall k1 k2 (a :: k1) (b :: k2). () => a :~~: a
+ Data.Constraint.Deferrable: [HRefl] :: forall k1 (a :: k1). a :~~: a
- Data.Constraint.Deferrable: [Refl] :: forall k (a :: k) (b :: k). () => a :~: a
+ Data.Constraint.Deferrable: [Refl] :: forall k (a :: k). a :~: a
- Data.Constraint.Symbol: appendAssociates :: forall a b c. Dict (((a ++ b) ++ c) ~ (a ++ (b ++ c)))
+ Data.Constraint.Symbol: appendAssociates :: forall a b c. Dict (AppendSymbol (AppendSymbol a b) c ~ AppendSymbol a (AppendSymbol b c))
- Data.Constraint.Symbol: appendSymbol :: (KnownSymbol a, KnownSymbol b) :- KnownSymbol (a ++ b)
+ Data.Constraint.Symbol: appendSymbol :: (KnownSymbol a, KnownSymbol b) :- KnownSymbol (AppendSymbol a b)
- Data.Constraint.Symbol: appendUnit1 :: forall a. Dict (("" ++ a) ~ a)
+ Data.Constraint.Symbol: appendUnit1 :: forall a. Dict (AppendSymbol "" a ~ a)
- Data.Constraint.Symbol: appendUnit2 :: forall a. Dict ((a ++ "") ~ a)
+ Data.Constraint.Symbol: appendUnit2 :: forall a. Dict (AppendSymbol a "" ~ a)
- Data.Constraint.Symbol: takeAppendDrop :: forall n a. Dict ((Take n a ++ Drop n a) ~ a)
+ Data.Constraint.Symbol: takeAppendDrop :: forall n a. Dict (AppendSymbol (Take n a) (Drop n a) ~ a)
- Data.Constraint.Unsafe: class a ~R# b => Coercible (a :: k0) (b :: k0)
+ Data.Constraint.Unsafe: class a ~R# b => Coercible (a :: k) (b :: k)

Files

CHANGELOG.markdown view
@@ -1,3 +1,31 @@+0.13 [2021.02.17]+-----------------+* `Data.Constraint.Symbol` now reexports the `GHC.TypeLits.AppendSymbol` type+  family from recent versions of `base` (or, on old versions of `base`, it+  defines a backwards-compatibile version of `AppendSymbol`). The existing+  `(++)` type family for `Data.Constraint.Symbol` is now a synonym for+  `AppendSymbol`.++  This is technically a breaking change, as `(++)` was previously defined like+  so:++  ```hs+  type family (++) :: Symbol -> Symbol -> Symbol+  ```++  This meant that `(++)` could be partially applied. However, for compatibility+  with the way that `AppendSymbol` is defined, `(++)` is now defined like so:++  ```hs+  type m ++ n = AppendSymbol m n+  ```++  As a result, `(++)` can no longer be partially applied.+* Make the `(++)` type family in `Data.Constraint.Symbol` be `infixr 5`.+* Add `implied :: (a => b) -> (a :- b)` to `Data.Constraint`, which converts+  a quantified constraint into an entailment. This is only available when+  compiled with GHC 8.6 or later.+ 0.12 [2020.02.03] ----------------- * Relax the type signature for `divideTimes`:
README.markdown view
@@ -1,7 +1,7 @@ constraints =========== -[![Hackage](https://img.shields.io/hackage/v/constraints.svg)](https://hackage.haskell.org/package/constraints) [![Build Status](https://secure.travis-ci.org/ekmett/constraints.png?branch=master)](http://travis-ci.org/ekmett/constraints)+[![Hackage](https://img.shields.io/hackage/v/constraints.svg)](https://hackage.haskell.org/package/constraints) [![Build Status](https://github.com/ekmett/constraints/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/constraints/actions?query=workflow%3AHaskell-CI)  This package provides data types and classes for manipulating the 'ConstraintKinds' exposed by GHC in 7.4. 
constraints.cabal view
@@ -1,6 +1,6 @@ name:          constraints category:      Constraints-version:       0.12+version:       0.13 license:       BSD2 cabal-version: >= 1.10 license-file:  LICENSE@@ -23,7 +23,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: README.markdown                   , CHANGELOG.markdown @@ -54,10 +55,11 @@     ghc-prim,     hashable >= 1.2 && < 1.4,     mtl >= 2.1.2 && < 2.3,-    semigroups >= 0.17 && < 0.20,     transformers >= 0.3.0.0 && < 0.6,     transformers-compat >= 0.5 && < 1,     type-equality >= 1 && < 2+  if impl(ghc < 8.0)+    build-depends: semigroups >= 0.17 && < 0.20    exposed-modules:     Data.Constraint@@ -72,6 +74,8 @@       Data.Constraint.Symbol    ghc-options: -Wall+  if impl(ghc >= 8.6)+    ghc-options: -Wno-star-is-type  test-suite spec   type: exitcode-stdio-1.0
src/Data/Constraint.hs view
@@ -27,6 +27,9 @@ #if __GLASGOW_HASKELL__ >= 708 && __GLASGOW_HASKELL__ < 710 {-# LANGUAGE NullaryTypeClasses #-} #endif+#if __GLASGOW_HASKELL__ >= 806+{-# LANGUAGE QuantifiedConstraints #-}+#endif ----------------------------------------------------------------------------- -- | -- Module      :  Data.Constraint@@ -71,6 +74,9 @@   , strengthen1, strengthen2   , (&&&), (***)   , trans, refl+#if __GLASGOW_HASKELL__ >= 806+  , implied+#endif   , Bottom(no)   , top, bottom   -- * Dict is fully faithful@@ -124,7 +130,7 @@ -- captures a dictionary that proves we have an: -- -- @--- instance 'Eq' 'Int+-- instance 'Eq' 'Int' -- @ -- -- Pattern matching on the 'Dict' constructor will bring this instance into scope.@@ -323,6 +329,18 @@ -- If we view @(':-')@ as a Constraint-indexed category, then this is 'id' refl :: a :- a refl = Sub Dict++--------------------------------------------------------------------------------+-- QuantifiedConstraints+--------------------------------------------------------------------------------++#if __GLASGOW_HASKELL__ >= 806+-- | Convert a quantified constraint into an entailment.+--+-- Only available on GHC 8.6 or later.+implied :: forall a b. (a => b) => a :- b+implied = Sub (Dict :: Dict b)+#endif  -------------------------------------------------------------------------------- -- (,) is a Bifunctor
src/Data/Constraint/Symbol.hs view
@@ -7,11 +7,13 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-}+{-# LANGUAGE CPP #-} -- | Utilities for working with 'KnownSymbol' constraints. -- -- This module is only available on GHC 8.0 or later. module Data.Constraint.Symbol-  ( type (++)+  ( type AppendSymbol+  , type (++)   , type Take   , type Drop   , type Length@@ -41,7 +43,14 @@ import GHC.TypeLits import Unsafe.Coerce -type family (++) :: Symbol -> Symbol -> Symbol where+#if !(MIN_VERSION_base(4,10,0))+type family AppendSymbol (m :: Symbol) (n :: Symbol) :: Symbol+#endif++-- | An infix synonym for 'AppendSymbol'.+type (m :: Symbol) ++ (n :: Symbol) = AppendSymbol m n+infixr 5 +++ type family Take :: Nat -> Symbol -> Symbol where type family Drop :: Nat -> Symbol -> Symbol where type family Length :: Symbol -> Nat where@@ -64,16 +73,26 @@  -- axioms and operations -appendSymbol :: (KnownSymbol a, KnownSymbol b) :- KnownSymbol (a ++ b)+appendSymbol :: (KnownSymbol a, KnownSymbol b) :- KnownSymbol (AppendSymbol a b) appendSymbol = magicSSS (++) -appendUnit1 :: forall a. Dict (("" ++ a) ~ a)-appendUnit1 = axiom+appendUnit1 :: forall a. Dict (AppendSymbol "" a ~ a)+appendUnit1 =+#if MIN_VERSION_base(4,10,0)+  Dict+#else+  axiom+#endif -appendUnit2 :: forall a. Dict ((a ++ "") ~ a)-appendUnit2 = axiom+appendUnit2 :: forall a. Dict (AppendSymbol a "" ~ a)+appendUnit2 =+#if MIN_VERSION_base(4,10,0)+  Dict+#else+  axiom+#endif -appendAssociates :: forall a b c. Dict (((a ++ b) ++ c) ~ (a ++ (b ++ c)))+appendAssociates :: forall a b c. Dict (AppendSymbol (AppendSymbol a b) c ~ AppendSymbol a (AppendSymbol b c)) appendAssociates = axiom  takeSymbol :: forall n a. (KnownNat n, KnownSymbol a) :- KnownSymbol (Take n a)@@ -82,7 +101,7 @@ dropSymbol :: forall n a. (KnownNat n, KnownSymbol a) :- KnownSymbol (Drop n a) dropSymbol = magicNSS drop -takeAppendDrop :: forall n a. Dict (Take n a ++ Drop n a ~ a)+takeAppendDrop :: forall n a. Dict (AppendSymbol (Take n a) (Drop n a) ~ a) takeAppendDrop = axiom  lengthSymbol :: forall a. KnownSymbol a :- KnownNat (Length a)