effectful-plugin 1.1.0.1 → 1.1.0.2
raw patch · 3 files changed
+23/−3 lines, 3 filesdep ~ghcPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghc
API changes (from Hackage documentation)
Files
- CHANGELOG.md +3/−0
- effectful-plugin.cabal +4/−3
- src/Effectful/Plugin.hs +16/−0
CHANGELOG.md view
@@ -1,3 +1,6 @@+# effectful-plugin-1.1.0.2 (2023-09-13)+* Add support for GHC 9.8.+ # effectful-plugin-1.1.0.1 (2023-03-13) * Show accurate error message in GHC >= 9.4 if `Effectful.Internal.Effect` is not found.
effectful-plugin.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 build-type: Simple name: effectful-plugin-version: 1.1.0.1+version: 1.1.0.2 license: BSD-3-Clause license-file: LICENSE category: Control@@ -17,7 +17,8 @@ extra-source-files: CHANGELOG.md README.md -tested-with: GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.7 || ==9.4.4 || ==9.6.1+tested-with: GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.7 || ==9.6.2+ || ==9.8.1 bug-reports: https://github.com/haskell-effectful/effectful/issues source-repository head@@ -57,7 +58,7 @@ build-depends: base >= 4.13 && < 5 , effectful-core >= 1.0.0.0 && < 3.0.0.0 , containers >= 0.5- , ghc >= 8.6 && < 9.7+ , ghc >= 8.8 && < 9.9 if impl(ghc < 9.4) build-depends: ghc-tcplugins-extra >= 0.3 && < 0.5
src/Effectful/Plugin.hs view
@@ -32,6 +32,9 @@ ( Ct (..) , CtEvidence (..) , CtLoc+#if __GLASGOW_HASKELL__ >= 908+ , DictCt (..)+#endif , ctPred , emptyRewriterSet )@@ -221,9 +224,15 @@ -- Determine whether a given constraint is of form 'e :> es'. maybeEffGiven :: Ct -> Maybe EffGiven maybeEffGiven = \case+#if __GLASGOW_HASKELL__ < 908 CDictCan { cc_class = cls , cc_tyargs = [eff, es] } ->+#else+ CDictCan DictCt { di_cls = cls+ , di_tys = [eff, es]+ } ->+#endif if cls == elemCls then Just EffGiven { givenEffHead = fst $ splitAppTys eff , givenEff = eff@@ -235,10 +244,17 @@ -- Determine whether a wanted constraint is of form 'e :> es'. splitWanteds :: Ct -> Either PredType EffWanted splitWanteds = \case+#if __GLASGOW_HASKELL__ < 908 ct@CDictCan { cc_ev = CtWanted { ctev_loc = loc } , cc_class = cls , cc_tyargs = [eff, es] } ->+#else+ ct@(CDictCan DictCt { di_ev = CtWanted { ctev_loc = loc }+ , di_cls = cls+ , di_tys = [eff, es]+ }) ->+#endif if cls == elemCls then Right EffWanted { wantedEffHead = fst $ splitAppTys eff , wantedEff = eff