Ben Gamari pushed to branch wip/T25968 at Glasgow Haskell Compiler / GHC

Commits:

2 changed files:

Changes:

  • compiler/GHC/Unit/Types.hs
    ... ... @@ -96,7 +96,7 @@ import GHC.Utils.Misc
    96 96
     import GHC.Settings.Config (cProjectUnitId)
    
    97 97
     
    
    98 98
     import Control.DeepSeq (NFData(..))
    
    99
    -import Data.Data
    
    99
    +import Data.Data (Data(..))
    
    100 100
     import Data.List (sortBy)
    
    101 101
     import Data.Function
    
    102 102
     import Data.Bifunctor
    
    ... ... @@ -117,12 +117,6 @@ data GenModule unit = Module
    117 117
        }
    
    118 118
        deriving (Eq,Ord,Data,Functor)
    
    119 119
     
    
    120
    -instance Data ModuleName where
    
    121
    -  -- don't traverse?
    
    122
    -  toConstr _   = abstractConstr "ModuleName"
    
    123
    -  gunfold _ _  = error "gunfold"
    
    124
    -  dataTypeOf _ = mkNoRepType "ModuleName"
    
    125
    -
    
    126 120
     -- | A Module is a pair of a 'Unit' and a 'ModuleName'.
    
    127 121
     type Module = GenModule Unit
    
    128 122
     
    

  • compiler/Language/Haskell/Syntax/Module/Name.hs
    ... ... @@ -3,15 +3,26 @@ module Language.Haskell.Syntax.Module.Name where
    3 3
     import Prelude
    
    4 4
     
    
    5 5
     import Data.Char (isAlphaNum)
    
    6
    +import Data.Data
    
    6 7
     import Control.DeepSeq
    
    7 8
     import qualified Text.ParserCombinators.ReadP as Parse
    
    8 9
     import System.FilePath
    
    9 10
     
    
    10 11
     import GHC.Data.FastString
    
    12
    +import GHC.Utils.Misc
    
    11 13
     
    
    12 14
     -- | A ModuleName is essentially a simple string, e.g. @Data.List@.
    
    13 15
     newtype ModuleName = ModuleName FastString deriving (Show, Eq)
    
    14 16
     
    
    17
    +instance Data ModuleName where
    
    18
    +  -- don't traverse?
    
    19
    +  toConstr _   = constr
    
    20
    +    where
    
    21
    +      constr = mkConstr datatype "{abstract:ModuleName}" [] Prefix
    
    22
    +      datatype = mkDataType "ModuleName" [constr]
    
    23
    +  gunfold _ _  = error "gunfold"
    
    24
    +  dataTypeOf _ = mkNoRepType "ModuleName"
    
    25
    +
    
    15 26
     instance Ord ModuleName where
    
    16 27
       nm1 `compare` nm2 = stableModuleNameCmp nm1 nm2
    
    17 28