recursion-schemes 5.2.2.2 → 5.2.2.3
raw patch · 4 files changed
+18/−4 lines, 4 files
Files
- CHANGELOG.markdown +5/−0
- recursion-schemes.cabal +3/−3
- src/Data/Functor/Foldable.hs +1/−1
- src/Data/Functor/Foldable/TH.hs +9/−0
CHANGELOG.markdown view
@@ -1,3 +1,8 @@+## 5.2.2.3++* Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/18320, which was+ preventing code calling makeBaseFunctor from being profiled.+ ## 5.2.2.2 * Support GHC-9.0 and GHC-9.2
recursion-schemes.cabal view
@@ -1,6 +1,6 @@ name: recursion-schemes category: Control, Recursion-version: 5.2.2.2+version: 5.2.2.3 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+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 build-type: Simple extra-doc-files: docs/github-compression.png docs/flowchart.svg@@ -83,7 +83,7 @@ if flag(template-haskell) build-depends:- template-haskell >= 2.5.0.0 && < 2.19,+ template-haskell >= 2.5.0.0 && < 2.20, base-orphans >= 0.5.4 && < 0.9, th-abstraction >= 0.4 && < 0.5 exposed-modules:
src/Data/Functor/Foldable.hs view
@@ -197,7 +197,7 @@ -- | A recursive datatype which can be unrolled one recursion layer at a time. -- -- For example, a value of type @[a]@ can be unrolled into a @'ListF' a [a]@.--- Ifthat unrolled value is a 'Cons', it contains another @[a]@ which can be+-- If that unrolled value is a 'Cons', it contains another @[a]@ which can be -- unrolled as well, and so on. -- -- Typically, 'Recursive' types also have a 'Corecursive' instance, in which
src/Data/Functor/Foldable/TH.hs view
@@ -1,4 +1,13 @@ {-# LANGUAGE CPP, PatternGuards, Rank2Types #-}+-- This OPTIONS_GHC line is a workaround for+-- https://gitlab.haskell.org/ghc/ghc/-/issues/18320, a bug which only occurs+-- when running specific TemplateHaskell code while both profiling and+-- optimisations are enabled. The code in this file triggers the bug, so until+-- it is fixed, we work around the issue by disabling optimisations in this+-- file. The code in this file only runs at compile-time, the code _generated_+-- by makeBaseFunctor will still get optimized if the file which calls+-- makeBaseFunctor is optimized.+{-# OPTIONS_GHC -O0 #-} module Data.Functor.Foldable.TH ( MakeBaseFunctor(..) , BaseRules