The unit tuple is defined in a different module to other tuples (oddly)
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 17 Aug 2011 06:58:36 +0000 (07:58 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Wed, 17 Aug 2011 06:58:36 +0000 (07:58 +0100)
Fixes Trac #5409

Language/Haskell/TH/Syntax.hs

index 18f6029..31e1300 100644 (file)
@@ -582,8 +582,9 @@ mk_tup_name n_commas space
   = Name occ (NameG space (mkPkgName "ghc-prim") tup_mod)
   where
     occ = mkOccName ('(' : replicate n_commas ',' ++ ")")
-    -- XXX Should it be GHC.Unit for 0 commas?
-    tup_mod = mkModName "GHC.Tuple"
+    tup_mod | n_commas ==0 = mkModName "GHC.Unit"
+            | otherwise    = mkModName "GHC.Tuple"
+    -- Oddly () is in a different module than the other tuples
 
 -- Unboxed tuple data and type constructors
 unboxedTupleDataName :: Int -> Name    -- ^ Data constructor