packages feed

generic-data-functions 0.5.0 → 0.5.1

raw patch · 5 files changed

+24/−6 lines, 5 filesdep ~textPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: text

API changes (from Hackage documentation)

- Generic.Data.Function.Traverse.Sum: instance forall k1 k2 (tag :: k1) pt (cd :: GHC.Generics.Meta) (gf :: k2 -> GHC.Types.Type). (Generic.Data.Function.Traverse.Constructor.GenericTraverseC tag pt, GHC.Base.Alternative (Generic.Data.Function.Traverse.Constructor.GenericTraverseF tag), GHC.Base.Monad (Generic.Data.Function.Traverse.Constructor.GenericTraverseF tag), Generic.Data.Function.Traverse.Sum.GenericTraverseSum tag, Generic.Data.Function.Traverse.Sum.GTraverseCSum tag cd gf, GHC.Generics.Datatype cd, Generic.Data.Function.Common.Generic.Meta.KnownSymbols (Generic.Data.Function.Common.Generic.Meta.CstrNames gf)) => Generic.Data.Function.Traverse.Sum.GTraverseSum tag (GHC.Generics.D1 cd gf)
+ Generic.Data.Function.Traverse.Constructor: type ENoEmpty tag = 'Text "Attempted to derive generic traverse for the void data type" :$$: 'Text "To override, implement genericTraverseV1 on:" :$$: 'Text "instance GenericTraverse (" :<>: 'ShowType tag :<>: 'Text ")"
+ Generic.Data.Function.Traverse.Sum: instance forall k1 k2 (tag :: k1) (cd :: GHC.Generics.Meta) (gf :: k2 -> GHC.Types.Type). (GHC.Base.Alternative (Generic.Data.Function.Traverse.Constructor.GenericTraverseF tag), GHC.Base.Monad (Generic.Data.Function.Traverse.Constructor.GenericTraverseF tag), Generic.Data.Function.Traverse.Sum.GenericTraverseSum tag, Generic.Data.Function.Traverse.Sum.GTraverseCSum tag cd gf, GHC.Generics.Datatype cd, Generic.Data.Function.Common.Generic.Meta.KnownSymbols (Generic.Data.Function.Common.Generic.Meta.CstrNames gf)) => Generic.Data.Function.Traverse.Sum.GTraverseSum tag (GHC.Generics.D1 cd gf)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## 0.5.1 (2024-04-10)+* remove spurious constraint in Traverse.Sum (should be same semantics)+* bump text upper bound for GHC 9.8 compatibility+ ## 0.5.0 (2024-04-05) * Remove `SumOpts` type used for switching whether or not to permit "singleton   sum types" for sum handlers. This was a type-level switch which changed
generic-data-functions.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           generic-data-functions-version:        0.5.0+version:        0.5.1 synopsis:       Familiar functions lifted to generic data types description:    Please see README.md. category:       Data, Generics@@ -65,5 +65,5 @@   build-depends:       base >=4.14 && <5     , contravariant >=1.5.5 && <1.6-    , text >=1.2.5.0 && <2.1+    , text >=1.2.5.0 && <2.2   default-language: GHC2021
src/Generic/Data/Function/Common/Error.hs view
@@ -9,7 +9,7 @@     <> "  got: "<>msgGot<>"\n"     <> "  but: "<>msgWhyBad<>"\n"     <> "If you like, you can catch such errors during compilation.\n"-    <> "See the generic-data-asserts package on Hackage."+    <> "See the generic-type-asserts package on Hackage."  eNoEmpty :: String eNoEmpty = wrapE "empty data type" "disallowed"
src/Generic/Data/Function/Traverse/Constructor.hs view
@@ -15,7 +15,7 @@ import Data.Kind ( type Type, type Constraint )  import Generic.Data.Wrappers ( NoRec0, type ENoRec0, EmptyRec0 )-import GHC.TypeLits ( TypeError )+import GHC.TypeError ( TypeError, ErrorMessage(..) )  -- import Data.Monoid @@ -49,7 +49,21 @@     --     -- Defaults to 'error', but you may wrap it in your functor if it pleases.     genericTraverseV1 :: GenericTraverseF tag (V1 p)+    -- NOTE: Prior to GHC 9.8, we can't default to a compile-time error here,+    -- due to TypeError limitations. From GHC 9.8, we can use Unsatisfiable.+    -- But I'm still not sure it works how I would like it to. Let's just stick+    -- with 'error' for now. One can always use generic-type-asserts.+    {-+    default genericTraverseV1+        :: Unsatisfiable (ENoEmpty tag) => GenericTraverseF tag (V1 p)+    genericTraverseV1 = unsatisfiable+    -}     genericTraverseV1 = error eNoEmpty++type ENoEmpty tag =+         'Text "Attempted to derive generic traverse for the void data type"+    :$$: 'Text "To override, implement genericTraverseV1 on:"+    :$$: 'Text "instance GenericTraverse (" :<>: 'ShowType tag :<>: 'Text ")"  -- | 'traverse' over types with no fields in any constructor. instance GenericTraverse (NoRec0 (f :: Type -> Type)) where
src/Generic/Data/Function/Traverse/Sum.hs view
@@ -47,6 +47,7 @@   }  class GTraverseSum tag gf where+    -- have to stuff pt constraint in here because we can't access pt externally     gTraverseSum         :: GenericTraverseC tag pt         => PfxTagCfg pt -> GenericTraverseF tag (gf p)@@ -57,8 +58,7 @@ -- | Test all constructors of the given non-void data type; if they all fail, --   run a failure action and pass it all the constructors names in the type. instance-  ( GenericTraverseC tag pt-  , Alternative (GenericTraverseF tag)+  ( Alternative (GenericTraverseF tag)   , Monad (GenericTraverseF tag)   , GenericTraverseSum tag, GTraverseCSum tag cd gf   , Datatype cd