GHC2021 doesn't imply UnboxedTuples?
Summary
I switched to GHC2021 via cabal-file default-language and I'm getting this complaint in my code:
deriving-trans> [1 of 7] Compiling Control.Monad.Accum.OrphanInstances ( src/Control/Monad/Accum/OrphanInstances.hs, dist/build/Control/Monad/Accum/OrphanInstances.o, dist/build/Control/Monad/Accum/OrphanInstances.dyn_o )
deriving-trans> [2 of 7] Compiling Control.Monad.Select.OrphanInstances ( src/Control/Monad/Select/OrphanInstances.hs, dist/build/Control/Monad/Select/OrphanInstances.o, dist/build/Control/Monad/Select/OrphanInstances.dyn_o )
deriving-trans> [3 of 7] Compiling Control.Monad.Trans.Elevator ( src/Control/Monad/Trans/Elevator.hs, dist/build/Control/Monad/Trans/Elevator.o, dist/build/Control/Monad/Trans/Elevator.dyn_o )
deriving-trans> [4 of 7] Compiling Control.Monad.Trans.Compose.Transparent ( src/Control/Monad/Trans/Compose/Transparent.hs, dist/build/Control/Monad/Trans/Compose/Transparent.o, dist/build/Control/Monad/Trans/Compose/Transparent.dyn_o )
deriving-trans> [5 of 7] Compiling Control.Monad.Trans.Compose ( src/Control/Monad/Trans/Compose.hs, dist/build/Control/Monad/Trans/Compose.o, dist/build/Control/Monad/Trans/Compose.dyn_o )
deriving-trans> src/Control/Monad/Trans/Compose.hs:376:1: error:
deriving-trans> • Illegal unboxed tuple type as function argument:
deriving-trans> (# ghc-prim-0.8.0:GHC.Prim.State#
deriving-trans> (Primitive.PrimState (ComposeT t1 t2 m)),
deriving-trans> a #)
deriving-trans> Perhaps you intended to use UnboxedTuples
deriving-trans> • In the type signature:
deriving-trans> Primitive.primitive :: forall (a :: *). (ghc-prim:GHC.Prim.State#
deriving-trans> (Primitive.PrimState (ComposeT t1 t2 m))
deriving-trans> -> (# ghc-prim:GHC.Prim.State#
deriving-trans> (Primitive.PrimState (ComposeT t1 t2 m)),
deriving-trans> a #))
deriving-trans> -> ComposeT t1 t2 m a
deriving-trans> When typechecking the code for ‘Primitive.primitive’
deriving-trans> in a derived instance for ‘Primitive.PrimMonad (ComposeT t1 t2 m)’:
deriving-trans> To see the code I am typechecking, use -ddump-deriv
deriving-trans> In the instance declaration for
deriving-trans> ‘Primitive.PrimMonad (ComposeT t1 t2 m)’
deriving-trans> |
deriving-trans> 376 | deriving via Elevator (ComposeT t1 t2) m
deriving-trans> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
When I manually turn the extension on in the file it works.
Steps to reproduce
Run nix flake check
on this commit https://github.com/jumper149/deriving-trans/commit/8ee81ac84df66c06f2b46586cf1eaded57afe7f3 .
Expected behavior
I was expecting the extension UnboxedTuples to be enabled by GHC2021 because of the docs, but it seems like it isn't.
Environment
- GHC version used: 9.2.4, 9.4.4
Optional:
- Operating System: NixOS Linux
- System Architecture: x86_64