large-anon 0.3.1 → 0.3.2
raw patch · 6 files changed
+22/−10 lines, 6 filesdep ~basedep ~fourmoludep ~ghc-tcplugin-apiPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, fourmolu, ghc-tcplugin-api, text
API changes (from Hackage documentation)
Files
- CHANGELOG.md +5/−0
- large-anon.cabal +11/−8
- src/Data/Record/Anon/Internal/Advanced.hs +3/−0
- src/Data/Record/Anon/Internal/Plugin/TC/Constraints/RowHasField.hs +1/−1
- src/Data/Record/Anon/Internal/Plugin/TC/Constraints/SubRow.hs +1/−1
- src/Data/Record/Anon/Internal/Plugin/TC/Rewriter.hs +1/−0
CHANGELOG.md view
@@ -1,5 +1,10 @@ # Revision history for large-anon +## 0.3.2 -- 2025-03-11++* Use ghc-tcplugin-api 0.14 (Chan Siu Man, #169)+* Add role annotation to `Record` (Sam Derbyshire, #167)+ ## 0.3.1 -- 2024-05-30 * Support ghc 9.6 (and drop ghc <= 8.8)
large-anon.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: large-anon-version: 0.3.1+version: 0.3.2 synopsis: Scalable anonymous records description: The @large-anon@ package provides support for anonymous records in Haskell, with a focus on compile-time (and@@ -10,9 +10,12 @@ author: Edsko de Vries maintainer: edsko@well-typed.com category: Records-extra-source-files: CHANGELOG.md+extra-doc-files: CHANGELOG.md test/Test/Sanity/RebindableSyntax/Tests.hs-tested-with: GHC ==8.10.7 || ==9.2.8 || ==9.4.8 || ==9.6.4+tested-with: GHC ==8.10.7+ GHC ==9.2.8+ GHC ==9.4.8+ GHC ==9.6.6 library exposed-modules:@@ -74,8 +77,8 @@ , base >= 4.14 && < 4.19 , containers >= 0.6.2 && < 0.8 , deepseq >= 1.4.4 && < 1.6- , ghc >= 8.10 && < 9.7 - , ghc-tcplugin-api >= 0.11 && < 0.12+ , ghc >= 8.10 && < 9.7+ , ghc-tcplugin-api >= 0.14 && < 0.15 , hashable >= 1.3 && < 1.5 , mtl >= 2.2.1 && < 2.4 , optics-core >= 0.3 && < 0.5@@ -201,9 +204,9 @@ hs-source-dirs: fourmolu-preprocessor build-depends:- , base- , fourmolu >= 0.10.1- , text+ , base >= 4.16 && < 4.19+ , fourmolu >= 0.10.1 && < 0.16+ , text >= 1.2 && < 2.1 default-language: Haskell2010 ghc-options:
src/Data/Record/Anon/Internal/Advanced.hs view
@@ -9,6 +9,7 @@ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE RoleAnnotations #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-}@@ -126,6 +127,8 @@ data Record (f :: k -> Type) (r :: Row k) = NoPending {-# UNPACK #-} !(Canonical f) | HasPending {-# UNPACK #-} !(Canonical f) !(Diff f)++type role Record representational representational {------------------------------------------------------------------------------- Conversion
src/Data/Record/Anon/Internal/Plugin/TC/Constraints/RowHasField.hs view
@@ -146,7 +146,7 @@ return (Nothing, []) Just info -> do eq <- newWanted loc $- mkPrimEqPredRole Nominal+ mkEqPredRole Nominal hasFieldTypeField (knownRowFieldInfo info) ev <- evidenceHasField rn hf (knownRowFieldIndex info)
src/Data/Record/Anon/Internal/Plugin/TC/Constraints/SubRow.hs view
@@ -133,7 +133,7 @@ case rhs `KnownRow.isSubRowOf` lhs of Right inBoth -> do eqs <- forM inBoth $ \(Target r, Source l) -> newWanted loc $- mkPrimEqPredRole+ mkEqPredRole Nominal (knownRowFieldInfo l) (knownFieldInfo r)
src/Data/Record/Anon/Internal/Plugin/TC/Rewriter.hs view
@@ -65,6 +65,7 @@ mkTyFamAppReduction "large-anon" Nominal+ [] fun args (computeMetadataOf argsFunctor knownFields)