packages feed

data-diverse 4.3.0.0 → 4.4.0.0

raw patch · 5 files changed

+31/−10 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Data.Diverse.TypeLevel: class Unconstrained a
- Data.Diverse.TypeLevel: instance forall k (a :: k). Data.Diverse.TypeLevel.Unconstrained a
+ Data.Diverse.TypeLevel: class C0 a
+ Data.Diverse.TypeLevel: class (c1 a, c2 a) => C2 c1 c2 a
+ Data.Diverse.TypeLevel: class (c1 a, c2 a, c3 a) => C3 c1 c2 c3 a
+ Data.Diverse.TypeLevel: class (c1 a, c2 a, c3 a, c4 a) => C4 c1 c2 c3 c4 a
+ Data.Diverse.TypeLevel: class (c1 a, c2 a, c3 a, c4 a, c5 a) => C5 c1 c2 c3 c4 c5 a
+ Data.Diverse.TypeLevel: class (c1 a, c2 a, c3 a, c4 a, c5 a, c6 a) => C6 c1 c2 c3 c4 c5 c6 a
+ Data.Diverse.TypeLevel: instance forall k (a :: k). Data.Diverse.TypeLevel.C0 a
+ Data.Diverse.TypeLevel: instance forall k (c1 :: k -> GHC.Types.Constraint) (a :: k) (c2 :: k -> GHC.Types.Constraint) (c3 :: k -> GHC.Types.Constraint) (c4 :: k -> GHC.Types.Constraint) (c5 :: k -> GHC.Types.Constraint) (c6 :: k -> GHC.Types.Constraint). (c1 a, c2 a, c3 a, c4 a, c5 a, c6 a) => Data.Diverse.TypeLevel.C6 c1 c2 c3 c4 c5 c6 a
+ Data.Diverse.TypeLevel: instance forall k (c1 :: k -> GHC.Types.Constraint) (a :: k) (c2 :: k -> GHC.Types.Constraint) (c3 :: k -> GHC.Types.Constraint) (c4 :: k -> GHC.Types.Constraint) (c5 :: k -> GHC.Types.Constraint). (c1 a, c2 a, c3 a, c4 a, c5 a) => Data.Diverse.TypeLevel.C5 c1 c2 c3 c4 c5 a
+ Data.Diverse.TypeLevel: instance forall k (c1 :: k -> GHC.Types.Constraint) (a :: k) (c2 :: k -> GHC.Types.Constraint) (c3 :: k -> GHC.Types.Constraint) (c4 :: k -> GHC.Types.Constraint). (c1 a, c2 a, c3 a, c4 a) => Data.Diverse.TypeLevel.C4 c1 c2 c3 c4 a
+ Data.Diverse.TypeLevel: instance forall k (c1 :: k -> GHC.Types.Constraint) (a :: k) (c2 :: k -> GHC.Types.Constraint) (c3 :: k -> GHC.Types.Constraint). (c1 a, c2 a, c3 a) => Data.Diverse.TypeLevel.C3 c1 c2 c3 a
+ Data.Diverse.TypeLevel: instance forall k (c1 :: k -> GHC.Types.Constraint) (a :: k) (c2 :: k -> GHC.Types.Constraint). (c1 a, c2 a) => Data.Diverse.TypeLevel.C2 c1 c2 a

Files

README.md view
@@ -14,13 +14,16 @@  # Changelog +* 4.4.0.0+  - Renamed `Unconstrained` to `C0`. Added `C2`, `C3`, `C4`, `C5`, `C6`.+ * 4.3.0.0-  - Renamed `Unconstrained` to `Unconstrained`+  - Renamed `NoConstraint` to `Unconstrained`  * 4.2.0.0   - Added `CaseFunc1` to allow `afmap` of with `Functor`, etc.   - `Which` is now also an instance of `AFoldable`.-  - Added `Unconstrained` which is useful for `CaseFunc1` for unused constraints.+  - Added `NoConstraint` which is useful for `CaseFunc1` for unused constraints.   - Added `definitely`.  * 4.1.0.0@@ -41,7 +44,7 @@   - Removed `CanAppendUnique` (not useful).  * 2.0.1.0-  - Simplified type synonyms for Which. Added Reinterpreted constraint synonym.+  - Simplified type synonyms for `Which`. Added `Reinterpreted` constraint synonym.  * 2.0.0.0   - Breaking change: the prime (xxx') version of functions are now consistently the simpler or non-polymorphic version.
data-diverse.cabal view
@@ -1,5 +1,5 @@ name:                data-diverse-version:             4.3.0.0+version:             4.4.0.0 synopsis:            Extensible records and polymorphic variants. description:         "Data.Diverse.Many" is an extensible record for any size encoded efficiently as (Seq Any).                      "Data.Diverse.Which" is a polymorphic variant of possibilities encoded as (Int, Any).
src/Data/Diverse/TypeLevel.hs view
@@ -3,10 +3,12 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE KindSignatures #-}+{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeInType #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE UndecidableSuperClasses #-}  module Data.Diverse.TypeLevel where @@ -176,5 +178,21 @@ -- https://hackage.haskell.org/package/vinyl-0.6.0/docs/Data-Vinyl-TypeLevel.html#t:AllConstrained  -- | This is useful as a level function for @k@ in 'CaseFunc1'-instance Unconstrained a where-class Unconstrained a where+class C0 a where+instance C0 a where++-- UndecidableSuperInstances :(+class (c1 a, c2 a) => C2 c1 c2 a where+instance (c1 a, c2 a) => C2 c1 c2 a where++class (c1 a, c2 a, c3 a) => C3 c1 c2 c3 a where+instance (c1 a, c2 a, c3 a) => C3 c1 c2 c3 a where++class (c1 a, c2 a, c3 a, c4 a) => C4 c1 c2 c3 c4 a where+instance (c1 a, c2 a, c3 a, c4 a) => C4 c1 c2 c3 c4 a where++class (c1 a, c2 a, c3 a, c4 a, c5 a) => C5 c1 c2 c3 c4 c5 a where+instance (c1 a, c2 a, c3 a, c4 a, c5 a) => C5 c1 c2 c3 c4 c5 a where++class (c1 a, c2 a, c3 a, c4 a, c5 a, c6 a) => C6 c1 c2 c3 c4 c5 c6 a where+instance (c1 a, c2 a, c3 a, c4 a, c5 a, c6 a) => C6 c1 c2 c3 c4 c5 c6 a where
test/Data/Diverse/ManySpec.hs view
@@ -336,5 +336,5 @@                 mz = (Just "5" :: Maybe String) ./ (["6"] :: [String]) ./ nil             afmap (CaseFunc' @Num (+10)) x `shouldBe` y             afmap (CaseFunc @Show @String show) x `shouldBe` z-            afmap (CaseFunc1' @Unconstrained @Functor @Num (fmap (+10))) mx `shouldBe` my-            afmap (CaseFunc1 @Unconstrained @Functor @Show @String (fmap show)) mx `shouldBe` mz+            afmap (CaseFunc1' @C0 @Functor @Num (fmap (+10))) mx `shouldBe` my+            afmap (CaseFunc1 @C0 @Functor @(C2 Show Read) @String (fmap show)) mx `shouldBe` mz
test/Data/Diverse/WhichSpec.hs view
@@ -282,5 +282,5 @@                 mz = pickN @1 (Just "5" :: Maybe String) :: Which '[Maybe String, Maybe String, Maybe String]             afmap (CaseFunc' @Num (+10)) x `shouldBe` y             afmap (CaseFunc @Show @String show) x `shouldBe` z-            afmap (CaseFunc1' @Unconstrained @Functor @Num (fmap (+10))) mx `shouldBe` my-            afmap (CaseFunc1 @Unconstrained @Functor @Show @String (fmap show)) mx `shouldBe` mz+            afmap (CaseFunc1' @C0 @Functor @Num (fmap (+10))) mx `shouldBe` my+            afmap (CaseFunc1 @C0 @Functor @Show @String (fmap show)) mx `shouldBe` mz