Ben Gamari pushed to branch wip/T25968 at Glasgow Haskell Compiler / GHC
Commits:
-
2ac3bf50
by Ben Gamari at 2025-04-24T13:47:50-04:00
2 changed files:
Changes:
... | ... | @@ -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 |
... | ... | @@ -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 |