Ben Gamari pushed to branch wip/T25968 at Glasgow Haskell Compiler / GHC
Commits:
-
a31466b2
by Ben Gamari at 2025-04-24T13:51:47-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,6 +3,7 @@ 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
|
... | ... | @@ -12,6 +13,14 @@ import GHC.Data.FastString |
12 | 13 | -- | A ModuleName is essentially a simple string, e.g. @Data.List@.
|
13 | 14 | newtype ModuleName = ModuleName FastString deriving (Show, Eq)
|
14 | 15 | |
16 | +instance Data ModuleName where
|
|
17 | + -- don't traverse?
|
|
18 | + toConstr x = constr
|
|
19 | + where
|
|
20 | + constr = mkConstr (datatypeOf x) "{abstract:ModuleName}" [] Prefix
|
|
21 | + gunfold _ _ = error "gunfold"
|
|
22 | + dataTypeOf _ = mkNoRepType "ModuleName"
|
|
23 | + |
|
15 | 24 | instance Ord ModuleName where
|
16 | 25 | nm1 `compare` nm2 = stableModuleNameCmp nm1 nm2
|
17 | 26 |