recursion-schemes 5.2.2.4 → 5.2.2.5
raw patch · 3 files changed
+19/−9 lines, 3 filesdep −base-orphansdep ~template-haskelldep ~th-abstraction
Dependencies removed: base-orphans
Dependency ranges changed: template-haskell, th-abstraction
Files
- CHANGELOG.markdown +8/−1
- recursion-schemes.cabal +4/−5
- src/Data/Functor/Foldable/TH.hs +7/−3
CHANGELOG.markdown view
@@ -1,8 +1,15 @@+## 5.2.2.5 [2023-10-14]++* Support GHC-9.6 and GHC-9.8+* Support `th-abstraction-0.6.0.0` or later.+ ## 5.2.2.4 [2023-02-27]-* Support `th-abstraction-0.3.0.0` or later. +* Support `th-abstraction-0.5.0.0` or later.+ ## 5.2.2.3 +* Support GHC-9.4 * Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/18320, which was preventing code calling makeBaseFunctor from being profiled.
recursion-schemes.cabal view
@@ -1,6 +1,6 @@ name: recursion-schemes category: Control, Recursion-version: 5.2.2.4+version: 5.2.2.5 license: BSD2 cabal-version: 1.18 license-file: LICENSE@@ -15,7 +15,7 @@ synopsis: Representing common recursion patterns as higher-order functions description: Many recursive functions share the same structure, e.g. pattern-match on the input and, depending on the data constructor, either recur on a smaller input or terminate the recursion with the base case. Another one: start with a seed value, use it to produce the first element of an infinite list, and recur on a modified seed in order to produce the rest of the list. Such a structure is called a recursion scheme. Using higher-order functions to implement those recursion schemes makes your code clearer, faster, and safer. See README for details. -tested-with: GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.1, GHC==9.2.1, GHC==9.4.1+tested-with: GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.1, GHC==9.2.1, GHC==9.4.1, GHC==9.6.2, GHC==9.8.1 build-type: Simple extra-doc-files: docs/github-compression.png docs/flowchart.svg@@ -83,9 +83,8 @@ if flag(template-haskell) build-depends:- template-haskell >= 2.5.0.0 && < 2.20,- base-orphans >= 0.5.4 && < 0.9,- th-abstraction >= 0.4 && < 0.6+ template-haskell >= 2.5.0.0 && < 2.22,+ th-abstraction >= 0.4 && < 0.7 exposed-modules: Data.Functor.Foldable.TH
src/Data/Functor/Foldable/TH.hs view
@@ -26,7 +26,6 @@ import Language.Haskell.TH.Datatype.TyVarBndr import Language.Haskell.TH.Syntax (mkNameG_tc, mkNameG_v) import Data.Char (GeneralCategory (..), generalCategory)-import Data.Orphans () #ifndef CURRENT_PACKAGE_KEY import Data.Version (showVersion) import Paths_recursion_schemes (version)@@ -36,6 +35,10 @@ import Data.Functor.Foldable #endif +#if !MIN_VERSION_template_haskell(2,21,0) && !MIN_VERSION_th_abstraction(0,6,0)+type TyVarBndrVis = TyVarBndrUnit+#endif+ -- $setup -- >>> :set -XTemplateHaskell -XTypeFamilies -XDeriveTraversable -XScopedTypeVariables -- >>> import Data.Functor.Foldable@@ -246,14 +249,15 @@ dataFamilyError = fail "makeBaseFunctor: Data families are currently not supported." - toTyVarBndr :: Type -> TyVarBndrUnit+ toTyVarBndr :: Type -> TyVarBndrVis toTyVarBndr (VarT n) = plainTV n toTyVarBndr (SigT (VarT n) k) = kindedTV n k toTyVarBndr _ = error "toTyVarBndr" makePrimForDI' :: BaseRules -> Maybe (Name -> [Dec] -> Dec) -- ^ make instance- -> Bool -> Name -> [TyVarBndrUnit]+ -> Bool -> Name+ -> [TyVarBndrVis] -> [ConstructorInfo] -> DecsQ makePrimForDI' rules mkInstance' isNewtype tyName vars cons = do -- variable parameters