simmsb/calamity

GHC 9 support

Closed this issue · 1 comments

I've encountered a few issues with GHC 9:
The first one is fairly straightforward:

calamity> /home/theo/prj/calamity/calamity/Calamity/Client/Types.hs:259:31: error:
calamity>     * Syntax error on 'ReadyEvt
calamity>       Perhaps you intended to use TemplateHaskell or TemplateHaskellQuotes
calamity>     * In the Template Haskell quotation 'ReadyEvt
calamity>     |
calamity> 259 |         [ WrapTypeable $ EH @ 'ReadyEvt []
calamity>     |                               ^^^^^^^^^

6fb89b0 added a space after the @ in the type application which GHC 9 doesn't seem to like.

Once I remove the spaces, I get this error here:

calamity> /home/theo/prj/calamity/calamity/Calamity/Client/Client.hs:489:48: error:
calamity>     * Couldn't match type: Lens' m0 (Maybe (IxValue m0))
calamity>                      with: (Maybe Member
calamity>                             -> Const
calamity>                                  (base-4.15.0.0:Data.Semigroup.Internal.Endo [Member])
calamity>                                  (Maybe Member))
calamity>                            -> SM.SnowflakeMap Member
calamity>                            -> Const
calamity>                                 (base-4.15.0.0:Data.Semigroup.Internal.Endo [Member])
calamity>                                 (SM.SnowflakeMap Member)
calamity>       Expected: Snowflake b0
calamity>                 -> (Maybe Member
calamity>                     -> Const
calamity>                          (base-4.15.0.0:Data.Semigroup.Internal.Endo [Member])
calamity>                          (Maybe Member))
calamity>                 -> SM.SnowflakeMap Member
calamity>                 -> Const
calamity>                      (base-4.15.0.0:Data.Semigroup.Internal.Endo [Member])
calamity>                      (SM.SnowflakeMap Member)
calamity>         Actual: Index m0 -> Lens' m0 (Maybe (IxValue m0))
calamity>     * In the first argument of `(.)', namely `at'
calamity>       In the first argument of `foldMap', namely `(at . getID)'
calamity>       In the first argument of `(.)', namely
calamity>         `foldMap (at . getID) members'
calamity>     |
calamity> 489 |   let members' = guild ^.. #members . foldMap (at . getID) members . _Just

For reference, here's the stack.yaml I used (the extra-deps are perhaps overkill, I just pasted them from my bot):

resolver: nightly-2021-05-01
allow-newer: true
compiler: ghc-9.0.1

packages:
- calamity
- calamity-commands

extra-deps:
- aeson-1.5.6.0
- assoc-1.0.2
- atomic-primops-0.8.4
- attoparsec-iso8601-1.0.2.0
- base-orphans-0.8.4
- basement-0.0.12
- bifunctors-5.5.11
- Cabal-3.4.0.0
- comonad-5.0.8
- contravariant-1.5.3
- data-fix-0.3.1
- data-flags-0.0.3.4
- df1-0.4
- di-1.3
- di-df1-1.2.1
- di-handle-1.0.1
- di-polysemy-0.2.0.0
- flexible-defaults-0.0.3
- focus-1.0.2
- foldl-1.4.11
- formatting-7.1.2
- free-5.1.7
- generic-deriving-1.14
- generic-override-0.0.0.0
- generic-override-aeson-0.0.0.0
- ghc-boot-9.0.1
- ghc-boot-th-9.0.1
- http-api-data-0.4.3
- indexed-traversable-0.1.1
- indexed-traversable-instances-0.1
- invariant-0.5.4
- kan-extensions-5.2.2
- lens-5.0.1
- lens-aeson-1.1.1
- modern-uri-0.3.4.1
- MonadRandom-0.5.3
- network-uri-2.6.4.1
- parsec-3.1.14.0
- pipes-4.3.15
- primitive-unlifted-0.1.3.0
- profunctors-5.6.2
- QuickCheck-2.14.2
- random-1.2.0
- random-source-0.3.0.11
- rvar-0.2.0.6
- semigroupoids-5.3.5
- singletons-3.0
- singletons-th-3.0
- splitmix-0.1.0.3
- StateVar-1.2.1
- stm-containers-1.2
- stm-hamt-1.2.0.6
- strict-0.4.0.1
- syb-0.7.2.1
- tagged-0.8.6.1
- template-haskell-2.17.0.0
- text-1.2.4.1
- text-show-3.9
- th-abstraction-0.4.2.0
- th-compat-0.1.2
- th-desugar-1.12
- th-expand-syns-0.4.8.0
- th-lift-0.8.2
- th-lift-instances-0.1.18
- th-orphans-0.13.11
- these-1.1.1.1
- time-compat-1.9.5
- unboxing-vector-0.2.0.0
- uuid-types-1.0.4
- websockets-0.12.7.2
- ghc-tcplugins-extra-0.4.1
- github: funketh/haskell-src-meta
  commit: fb5c21707a7cc32bc7d4bf4ec00073c3a71b5cfe
  subdirs: [haskell-src-meta]
# GHC 9 patches:
- github: andrewthad/hs-memory
  commit: 683b402965e68800337af8f9b237d28be273c0d8
- github: kcsongor/generic-lens
  commit: 8e1fc7dcf444332c474fca17110d4bc554db08c8
  subdirs:
    - generic-optics
    - generic-lens
    - generic-lens-core
- github: amesgen/cryptonite
  commit: c5b2630ac396ad2d14ee1ed5d216907acaf2e79e
- github: mokus0/th-extras
  commit: 57a97b4df128eb7b360e8ab9c5759392de8d1659
- github: hasufell/primitive-extras
  commit: c8a8fc5222ab203cf0e566c58e9483c1f231cfdd
- github: galenhuntington/fmt
  commit: 913194f8f7aab4445a82994a38c5804a31333b75
- github: mithrandi/req
  commit: f1afa23ccc6c5e580b534c8341e155b29f93353c
- github: polysemy-research/polysemy
  commit: 09c65bdae9c9ce50a55c7ee2ab9681916f09f4c3
  subdirs:
    - .
    - polysemy-plugin
- github: funketh/random-fu
  commit: 2d38294582ba211df6a5a2b7f7a2c5e71038b0e7
  subdirs:
    - random-fu

fixed by aaa3753