Misleading error message when unboxed tuples used in sums without -XUnboxedTuples
$ cat lib.hs
{-# LANGUAGE UnboxedSums #-}
module Lib where
type Foo = (# (# Int, Int #) | Int #)
$ ghc lib.hs
[1 of 1] Compiling Lib ( lib.hs, lib.o )
lib.hs:5:1: error:
• Illegal unboxed tuple type as function argument: (# Int, Int #)
• In the type synonym declaration for ‘Foo’
|
5 | type Foo = (# (# Int, Int #) | Int #)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
But there's nothing illegal about this type, we just need to enable UnboxedTuples
. The error message is misleading.
(We should also check using unboxed sums inside tuples)