packages feed

vinyl 0.12.1 → 0.12.2

raw patch · 8 files changed

+59/−15 lines, 8 filesdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

- Data.Vinyl.Lens: rsubset :: forall rs ss f g record is. (RecSubset record (rs :: [k]) (ss :: [k]) is, Functor g, RecSubsetFCtx record f) => (record f rs -> g (record f rs)) -> record f ss -> g (record f ss)
+ Data.Vinyl.Lens: rsubset :: forall k rs ss f g record is. (RecSubset record (rs :: [k]) (ss :: [k]) is, Functor g, RecSubsetFCtx record f) => (record f rs -> g (record f rs)) -> record f ss -> g (record f ss)
- Data.Vinyl.Recursive: rpureConstrained :: forall c (f :: u -> *) proxy ts. (AllConstrained c ts, RecApplicative ts) => proxy c -> (forall a. c a => f a) -> Rec f ts
+ Data.Vinyl.Recursive: rpureConstrained :: forall u c (f :: u -> *) proxy ts. (AllConstrained c ts, RecApplicative ts) => proxy c -> (forall a. c a => f a) -> Rec f ts
- Data.Vinyl.SRec: sput :: forall (f :: u -> *) (t :: u) (ts :: [u]). (FieldOffset f ts t, Storable (Rec f ts), AllConstrained (FieldOffset f ts) ts) => f t -> SRec2 f f ts -> SRec2 f f ts
+ Data.Vinyl.SRec: sput :: forall u (f :: u -> *) (t :: u) (ts :: [u]). (FieldOffset f ts t, Storable (Rec f ts), AllConstrained (FieldOffset f ts) ts) => f t -> SRec2 f f ts -> SRec2 f f ts
- Data.Vinyl.SRec: srecGetSubset :: forall (ss :: [u]) (rs :: [u]) (f :: u -> *). (RPureConstrained (FieldOffset f ss) rs, RPureConstrained (FieldOffset f rs) rs, RFoldMap rs, RMap rs, RApply rs, Storable (Rec f rs)) => SRec2 f f ss -> SRec2 f f rs
+ Data.Vinyl.SRec: srecGetSubset :: forall u (ss :: [u]) (rs :: [u]) (f :: u -> *). (RPureConstrained (FieldOffset f ss) rs, RPureConstrained (FieldOffset f rs) rs, RFoldMap rs, RMap rs, RApply rs, Storable (Rec f rs)) => SRec2 f f ss -> SRec2 f f rs
- Data.Vinyl.SRec: srecSetSubset :: forall (f :: u -> *) (ss :: [u]) (rs :: [u]). (rs ⊆ ss, RPureConstrained (FieldOffset f ss) rs, RPureConstrained (FieldOffset f rs) rs, RFoldMap rs, RMap rs, RApply rs, Storable (Rec f ss)) => SRec2 f f ss -> SRec2 f f rs -> SRec2 f f ss
+ Data.Vinyl.SRec: srecSetSubset :: forall u (f :: u -> *) (ss :: [u]) (rs :: [u]). (rs ⊆ ss, RPureConstrained (FieldOffset f ss) rs, RPureConstrained (FieldOffset f rs) rs, RFoldMap rs, RMap rs, RApply rs, Storable (Rec f ss)) => SRec2 f f ss -> SRec2 f f rs -> SRec2 f f ss

Files

CHANGELOG.md view
@@ -1,4 +1,9 @@+# 0.12.2++- GHC 8.10.1 support+ # 0.12.0+ - GHC 8.8.1 support. Class type signatures were changed to remove explicit kind variables. This is to simplify the use of `TypeApplications` which changed with GHC 8.8.1 to require explicit application to those kind variables. Leaving them out of the class definitions preserves existing usage of `TypeApplications`. Thanks to Justin Le (@mstksg).  # 0.11.0
Data/Vinyl/Lens.hs view
@@ -11,6 +11,11 @@ {-# LANGUAGE ScopedTypeVariables   #-} {-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE TypeOperators         #-}+{-# LANGUAGE CPP                   #-}+#if __GLASGOW_HASKELL__ < 806+{-# LANGUAGE TypeInType #-}+#endif+ -- | Lenses into record fields. module Data.Vinyl.Lens   ( RecElem(..)@@ -32,6 +37,9 @@ import Data.Vinyl.Core import Data.Vinyl.Functor import Data.Vinyl.TypeLevel+#if __GLASGOW_HASKELL__ < 806+import Data.Kind+#endif  -- | The presence of a field in a record is witnessed by a lens into -- its value.  The fifth parameter to 'RecElem', @i@, is there to help@@ -176,7 +184,7 @@ -- | A lens into a slice of the larger record. This is 'rsubsetC' with -- the type arguments reordered for more convenient usage with -- @TypeApplications@.-rsubset :: forall rs ss f g record is.+rsubset :: forall k rs ss f g record is.            (RecSubset record (rs :: [k]) (ss :: [k]) is,            Functor g, RecSubsetFCtx record f)         => (record f rs -> g (record f rs)) -> record f ss -> g (record f ss)
Data/Vinyl/Recursive.hs view
@@ -6,11 +6,19 @@ {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-}+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ < 806+{-# LANGUAGE TypeInType #-}+#endif+ -- | Recursive definitions of various core vinyl functions. These are -- simple definitions that put less strain on the compiler. They are -- expected to have slower run times, but faster compile times than -- the definitions in "Data.Vinyl.Core". module Data.Vinyl.Recursive where+#if __GLASGOW_HASKELL__ < 806+import Data.Kind+#endif import Data.Proxy (Proxy(..)) import Data.Vinyl.Core (rpure, RecApplicative, Rec(..), Dict(..)) import Data.Vinyl.Functor (Compose(..), (:.), Lift(..), Const(..))@@ -139,7 +147,7 @@  -- | Build a record whose elements are derived solely from a -- constraint satisfied by each.-rpureConstrained :: forall c (f :: u -> *) proxy ts.+rpureConstrained :: forall u c (f :: u -> *) proxy ts.                     (AllConstrained c ts, RecApplicative ts)                  => proxy c -> (forall a. c a => f a) -> Rec f ts rpureConstrained _ f = go (rpure Proxy)
Data/Vinyl/SRec.hs view
@@ -28,6 +28,7 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE CPP #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}@@ -44,6 +45,9 @@ {-# LANGUAGE UnboxedTuples #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE UndecidableSuperClasses #-}+#if __GLASGOW_HASKELL__ < 806+{-# LANGUAGE TypeInType #-}+#endif  -- We get warnings about incomplete patterns on various class -- instances.@@ -60,6 +64,9 @@   , peekField, pokeField ) where import Data.Coerce (coerce)+#if __GLASGOW_HASKELL__ < 806+import Data.Kind+#endif import Data.Vinyl.Core import Data.Vinyl.Functor (Lift(..), Compose(..), type (:.), ElField) import Data.Vinyl.Lens (RecElem(..), RecSubset(..), type (⊆), RecElemFCtx)@@ -219,7 +226,7 @@       dst <$ copyBytes dst' src' n  -- | Set a field.-sput :: forall (f :: u -> *) (t :: u) (ts :: [u]).+sput :: forall u (f :: u -> *) (t :: u) (ts :: [u]).         ( FieldOffset f ts t         , Storable (Rec f ts)         , AllConstrained (FieldOffset f ts) ts)@@ -296,7 +303,7 @@   {-# INLINE rputC #-}  -- | Get a subset of a record's fields.-srecGetSubset :: forall (ss :: [u]) (rs :: [u]) (f :: u -> *).+srecGetSubset :: forall u (ss :: [u]) (rs :: [u]) (f :: u -> *).                  (RPureConstrained (FieldOffset f ss) rs,                   RPureConstrained (FieldOffset f rs) rs,                   RFoldMap rs, RMap rs, RApply rs,@@ -334,7 +341,7 @@ type Poker f = Lift (->) f TaggedIO  -- | Set a subset of a record's fields.-srecSetSubset :: forall (f :: u -> *) (ss :: [u]) (rs :: [u]).+srecSetSubset :: forall u (f :: u -> *) (ss :: [u]) (rs :: [u]).                  (rs ⊆ ss,                   RPureConstrained (FieldOffset f ss) rs,                   RPureConstrained (FieldOffset f rs) rs,
Data/Vinyl/Tutorial/Overview.hs view
@@ -157,7 +157,7 @@ The subtyping relationship between record types is expressed with the '<:' constraint; so, 'rcast' is of the following type: -> rcast :: r1 <: r2 => Rec f r1 -> Rec f r2+> rcast :: r1 <: r2 => Rec f r2 -> Rec f r1  Also provided is a "≅" constraint which indicates record congruence (that is, two record types differ only in the order of their fields).
Data/Vinyl/TypeLevel.hs view
@@ -11,10 +11,21 @@ {-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE TypeFamilyDependencies #-} {-# LANGUAGE TypeOperators         #-}+{-# LANGUAGE CPP                   #-}+#if __GLASGOW_HASKELL__ < 806+{-# LANGUAGE TypeInType #-}+#endif+#if __GLASGOW_HASKELL__ >= 810+{-# LANGUAGE UndecidableInstances  #-}+#endif  module Data.Vinyl.TypeLevel where +#if __GLASGOW_HASKELL__ < 806+import Data.Kind+#else import GHC.Exts+#endif import GHC.Types (Type)  -- | A mere approximation of the natural numbers. And their image as lifted by
tests/Intro.lhs view
@@ -21,6 +21,11 @@ > {-# LANGUAGE FlexibleContexts, FlexibleInstances, NoMonomorphismRestriction #-} > {-# LANGUAGE GADTs, TypeSynonymInstances, TemplateHaskell, StandaloneDeriving #-} > {-# LANGUAGE TypeApplications #-}+> {-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >= 810+> {-# LANGUAGE StandaloneKindSignatures #-}+#endif+ > module Intro where > import Data.Vinyl > import Data.Vinyl.Functor
vinyl.cabal view
@@ -1,5 +1,5 @@ name:                vinyl-version:             0.12.1+version:             0.12.2 synopsis:            Extensible Records -- description: license:             MIT@@ -12,7 +12,7 @@ build-type:          Simple cabal-version:       >=1.10 extra-source-files:  CHANGELOG.md-tested-with:         GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.2+tested-with:         GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.3, GHC == 8.10.1  description: Extensible records for Haskell with lenses. @@ -38,7 +38,7 @@                      , Data.Vinyl.Syntax                      , Data.Vinyl.Tutorial.Overview                      , Data.Vinyl.XRec-  build-depends:       base >=4.7 && <= 5,+  build-depends:       base >= 4.11 && <= 5,                        ghc-prim,                        array   default-language:    Haskell2010@@ -49,7 +49,7 @@   type:             exitcode-stdio-1.0   hs-source-dirs:   benchmarks   main-is:          StorableBench.hs-  build-depends:    base >= 4.7 && <= 5,+  build-depends:    base,                     vector,                     criterion,                     vinyl,@@ -65,7 +65,7 @@   type:             exitcode-stdio-1.0   hs-source-dirs:   benchmarks   main-is:          EqualityBench.hs-  build-depends:    base >= 4.7 && <= 5, criterion, vinyl+  build-depends:    base, criterion, vinyl   ghc-options:      -O2   default-language: Haskell2010 @@ -73,7 +73,7 @@   type:             exitcode-stdio-1.0   hs-source-dirs:   benchmarks   main-is:          AccessorsBench.hs-  build-depends:    base >= 4.7 && <= 5, criterion, tagged, vinyl, microlens+  build-depends:    base, criterion, tagged, vinyl, microlens   ghc-options:      -O2   default-language: Haskell2010 @@ -81,7 +81,7 @@   type:             exitcode-stdio-1.0   hs-source-dirs:   benchmarks   main-is:          AsABench.hs-  build-depends:    base >= 4.7 && <= 5, criterion, vinyl+  build-depends:    base, criterion, vinyl   ghc-options:      -O2   default-language: Haskell2010 @@ -90,14 +90,14 @@   hs-source-dirs:   tests   other-modules:    Intro   main-is:          doctests.hs-  build-depends:    base >= 4.7 && <= 5, lens, doctest >= 0.8, singletons >= 0.10, vinyl+  build-depends:    base, lens, doctest >= 0.8, singletons >= 0.10, vinyl   default-language: Haskell2010  test-suite aeson   type:             exitcode-stdio-1.0   hs-source-dirs:   tests   main-is:          Aeson.hs-  build-depends:    base >= 4.7 && <= 5, hspec, aeson, text, mtl, vinyl,+  build-depends:    base, hspec, aeson, text, mtl, vinyl,                     vector, unordered-containers, lens, lens-aeson   default-language: Haskell2010