1. 06 Oct, 2022 1 commit
  2. 05 Oct, 2022 1 commit
  3. 11 Sep, 2022 2 commits
  4. 10 Sep, 2022 1 commit
  5. 08 Sep, 2022 1 commit
  6. 04 Aug, 2022 2 commits
  7. 20 Mar, 2022 2 commits
  8. 18 Mar, 2022 1 commit
  9. 11 Feb, 2022 1 commit
  10. 10 Feb, 2022 1 commit
  11. 28 Oct, 2021 3 commits
  12. 27 Oct, 2021 1 commit
  13. 19 Mar, 2021 1 commit
  14. 16 Mar, 2021 1 commit
  15. 14 Mar, 2021 1 commit
    • Ryan Scott's avatar
      kind-generics-th: Support building with GHC 9.0 · c11f22df
      Ryan Scott authored
      This contains tweaks needed to support building `kind-generics-th` with
      `template-haskell-2.17.0.0` (bundled with GHC 9.0):
      
      * `TyVarBndr` now has an extra type parameter in `template-haskell-2.17.0.0`,
        representing whether it has a specificity or not. To avoid needing to use
        CPP to work around this API change, I use `th-abstraction`'s
        `Language.Haskell.TH.Datatype.TyVarBndr` module, which provides a
        backwards-compatible API for dealing with `TyVarBndr`s. Since this module
        was introduced in `th-abstraction-0.4`, I bumped the lower version bounds
        on `th-abstraction` accordingly.
      * I added some missing cases in `deriveRepK.atomize.go`.
      c11f22df
  16. 31 Oct, 2020 3 commits
  17. 01 Oct, 2020 1 commit
  18. 03 May, 2020 2 commits
  19. 02 May, 2020 2 commits
  20. 12 Nov, 2019 1 commit
  21. 11 Nov, 2019 1 commit
    • Ryan Scott's avatar
      Make kind-generics-th's tests compile on GHC 8.10 · 41f957bd
      Ryan Scott authored
      Due to GHC commit
      https://gitlab.haskell.org/ghc/ghc/commit/9612e91c793830b3049d2bc9a9ee28d9d82b928d,
      GHC's constraint solver now solves contraints for each top-level
      group sooner. A consequence is that TH splices strictly separate
      top-level groups, which causes `kind-generics-th`'s test suite to
      fail to compile on GHC 8.10:
      
      ```
      tests/Main.hs:82:17: error:
          • No instance for (GenericK TC4) arising from a use of ‘isGenericK’
          • In the expression: isGenericK @_ @tc4 @(_ :&&: 'LoT0)
            In the expression:
              [isGenericK @_ @(V1 _) @'LoT0, isGenericK @_ @V1 @(_ :&&: 'LoT0),
               isGenericK @_ @((:+:) _ _ _) @'LoT0,
               isGenericK @_ @((:+:) _ _) @(_ :&&: 'LoT0), ....]
            In an equation for ‘insts’:
                insts
                  = [isGenericK @_ @(V1 _) @'LoT0, isGenericK @_ @V1 @(_ :&&: 'LoT0),
                     isGenericK @_ @((:+:) _ _ _) @'LoT0, ....]
         |
      82 |               , isGenericK @_ @tc4     @(_ ':&&: 'LoT0)
         |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      tests/Main.hs:84:17: error:
          • No instance for (GenericK (TC5 _45))
              arising from a use of ‘isGenericK’
          • In the expression: isGenericK @_ @(TC5 _) @'LoT0
            In the expression:
              [isGenericK @_ @(V1 _) @'LoT0, isGenericK @_ @V1 @(_ :&&: 'LoT0),
               isGenericK @_ @((:+:) _ _ _) @'LoT0,
               isGenericK @_ @((:+:) _ _) @(_ :&&: 'LoT0), ....]
            In an equation for ‘insts’:
                insts
                  = [isGenericK @_ @(V1 _) @'LoT0, isGenericK @_ @V1 @(_ :&&: 'LoT0),
                     isGenericK @_ @((:+:) _ _ _) @'LoT0, ....]
         |
      84 |               , isGenericK @_ @(TC5 _) @'LoT0
         |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      
      -- etc.
      ```
      
      This patch fixes the issue by reordering some things in the test
      suite to avoid ordering issues.
      41f957bd
  22. 10 Oct, 2019 1 commit
  23. 09 Oct, 2019 1 commit
  24. 10 Sep, 2019 2 commits
  25. 09 Sep, 2019 2 commits
  26. 07 Sep, 2019 1 commit
    • Ryan Scott's avatar
      Allow building with GHC 8.8 · 2c4afb0a
      Ryan Scott authored
      Various tweaks are necessary to allow the libraries in this repo to
      build with GHC 8.8:
      
      * Add some cases in `kind-generics-th` for `template-haskell-2.15`'s
        new `Type` constructors: `AppKindT` (for visible kind applications)
        and `ImplicitParamT` (for implicit parameters).
      
        `AppKindT` is simple to handle. I handle `ImplicitParamT` by first
        desugaring `?n :: T` into `IP "n" T` (where `IP` is the class
        version of implicit parameters from `GHC.Classes) and then
        straightforwardly handle that type.
      * The type of `TySynInstD` has changed in `template-haskell-2.15`. To
        fix this in a way that is backwards-compatible with previous
        versions of `template-haskell`, I use the `tySynInstDCompat` method
        available in `th-abstraction-0.3`. This requires increasing
        `kind-generics-th`'s lower version bounds on `th-abstraction`, but
        this is fine, since `th-abstraction-0.3` is available in the latest
        version of Stackage.
      * `base-4.13`'s `Prelude` exports `MonadFail.fail`, not `Monad.fail`.
        However, `unbound-kind-generics` is attempting to use `fail` at
        type `FreshM` (a newtype around `StateT Identity`), which does not
        have a `MonadFail` instance. Fix this by using `error` instead of
        `fail`.
      2c4afb0a
  27. 04 Sep, 2019 3 commits