large-generics 0.2.0.0 → 0.2.1
raw patch · 5 files changed
+35/−4 lines, 5 filesdep +deepseqdep ~basedep ~primitivePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: deepseq
Dependency ranges changed: base, primitive
API changes (from Hackage documentation)
+ Data.Record.Generic: type Constraints a :: (Type -> Constraint) -> Constraint;
+ Data.Record.Generic: type MetadataOf a :: [(Symbol, Type)];
+ Data.Record.Generic.NFData: grnf :: (Generic a, Constraints a NFData) => a -> ()
- Data.Record.Generic: [Dict] :: forall k (c :: k -> Constraint) (a :: k). c a => Dict c a
+ Data.Record.Generic: [Dict] :: forall {k} (c :: k -> Constraint) (a :: k). c a => Dict c a
- Data.Record.Generic: mapIIK :: forall k a b c (d :: k). (a -> b -> c) -> I a -> I b -> K c d
+ Data.Record.Generic: mapIIK :: forall {k} a b c (d :: k). (a -> b -> c) -> I a -> I b -> K c d
- Data.Record.Generic: mapIK :: forall k a b (c :: k). (a -> b) -> I a -> K b c
+ Data.Record.Generic: mapIK :: forall {k} a b (c :: k). (a -> b) -> I a -> K b c
- Data.Record.Generic: mapIKI :: forall k a b c (d :: k). (a -> b -> c) -> I a -> K b d -> I c
+ Data.Record.Generic: mapIKI :: forall {k} a b c (d :: k). (a -> b -> c) -> I a -> K b d -> I c
- Data.Record.Generic: mapIKK :: forall k1 k2 a b c (d :: k1) (e :: k2). (a -> b -> c) -> I a -> K b d -> K c e
+ Data.Record.Generic: mapIKK :: forall {k1} {k2} a b c (d :: k1) (e :: k2). (a -> b -> c) -> I a -> K b d -> K c e
- Data.Record.Generic: mapKI :: forall k a b (c :: k). (a -> b) -> K a c -> I b
+ Data.Record.Generic: mapKI :: forall {k} a b (c :: k). (a -> b) -> K a c -> I b
- Data.Record.Generic: mapKII :: forall k a b c (d :: k). (a -> b -> c) -> K a d -> I b -> I c
+ Data.Record.Generic: mapKII :: forall {k} a b c (d :: k). (a -> b -> c) -> K a d -> I b -> I c
- Data.Record.Generic: mapKIK :: forall k1 k2 a b c (d :: k1) (e :: k2). (a -> b -> c) -> K a d -> I b -> K c e
+ Data.Record.Generic: mapKIK :: forall {k1} {k2} a b c (d :: k1) (e :: k2). (a -> b -> c) -> K a d -> I b -> K c e
- Data.Record.Generic: mapKK :: forall k1 k2 a b (c :: k1) (d :: k2). (a -> b) -> K a c -> K b d
+ Data.Record.Generic: mapKK :: forall {k1} {k2} a b (c :: k1) (d :: k2). (a -> b) -> K a c -> K b d
- Data.Record.Generic: mapKKI :: forall k1 k2 a b c (d :: k1) (e :: k2). (a -> b -> c) -> K a d -> K b e -> I c
+ Data.Record.Generic: mapKKI :: forall {k1} {k2} a b c (d :: k1) (e :: k2). (a -> b -> c) -> K a d -> K b e -> I c
- Data.Record.Generic: mapKKK :: forall k1 k2 k3 a b c (d :: k1) (e :: k2) (f :: k3). (a -> b -> c) -> K a d -> K b e -> K c f
+ Data.Record.Generic: mapKKK :: forall {k1} {k2} {k3} a b c (d :: k1) (e :: k2) (f :: k3). (a -> b -> c) -> K a d -> K b e -> K c f
- Data.Record.Generic: unComp :: forall l k f (g :: k -> l) (p :: k). (f :.: g) p -> f (g p)
+ Data.Record.Generic: unComp :: forall {l} {k} f (g :: k -> l) (p :: k). (f :.: g) p -> f (g p)
- Data.Record.Generic: unK :: forall k a (b :: k). K a b -> a
+ Data.Record.Generic: unK :: forall {k} a (b :: k). K a b -> a
Files
- CHANGELOG.md +4/−0
- large-generics.cabal +6/−4
- src/Data/Record/Generic.hs +1/−0
- src/Data/Record/Generic/NFData.hs +23/−0
- src/Data/Record/Generic/SOP.hs +1/−0
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for large-generics +## 0.2.1 -- 2023-03-06++* Support ghc 9.4+ ## 0.2.0.0 -- 2022-04-06 * Use `SmallArray` instead of `Vector`
large-generics.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: large-generics-version: 0.2.0.0+version: 0.2.1 synopsis: Generic programming API for large-records and large-anon description: The large-generics package offers a style of generic programming inspired by generics-sop, but optimized for@@ -13,7 +13,7 @@ maintainer: edsko@well-typed.com category: Generics extra-source-files: CHANGELOG.md-tested-with: GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.2+tested-with: GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.4 library exposed-modules:@@ -32,6 +32,7 @@ Data.Record.Generic.JSON Data.Record.Generic.Lens.VL Data.Record.Generic.LowerBound+ Data.Record.Generic.NFData Data.Record.Generic.Show default-language: Haskell2010@@ -41,8 +42,9 @@ hs-source-dirs: src build-depends:- base >= 4.13 && < 4.17- , aeson >= 1.4.4 && < 2.1+ base >= 4.13 && < 4.18+ , aeson >= 1.4.4 && < 2.2+ , deepseq >= 1.4.4 && < 1.5 , generics-sop >= 0.5 && < 0.6 , sop-core >= 0.5 && < 0.6 , primitive >= 0.7 && < 0.8
src/Data/Record/Generic.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} module Data.Record.Generic (
+ src/Data/Record/Generic/NFData.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE TypeApplications #-}++module Data.Record.Generic.NFData (+ grnf+ ) where++import Control.DeepSeq (NFData, rnf)+import Data.Record.Generic+import qualified Data.Record.Generic.Rep as Rep++-- | Generic rnf function+--+-- Typical usage:+--+-- > instance NFData T where+-- > rnf = grnf+--+grnf :: (Generic a, Constraints a NFData) => a -> ()+grnf =+ rnf+ . Rep.collapse+ . Rep.cmap (Proxy @NFData) (mapIK rnf)+ . from
src/Data/Record/Generic/SOP.hs view
@@ -10,6 +10,7 @@ {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UndecidableSuperClasses #-}