diff options
author | Ben Gamari <ben@smart-cactus.org> | 2020-08-31 13:59:34 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-31 13:59:34 -0400 |
commit | 5228394c88e67551e35bae1cab6b2e04eb4382f7 (patch) | |
tree | e79b847f77107f2ee67933ee4d98080f8a4bd232 /haddock-api/src/Haddock/Interface | |
parent | 323aa89cbb4a3e8c8f32295e42a42635f05c849d (diff) | |
parent | 54468d1e60cb10093120137766cfc9dd91671c98 (diff) |
Merge pull request #1226 from hsyl20/wip/hsyl20/fs_ord
Remove Ord FastString instance
Diffstat (limited to 'haddock-api/src/Haddock/Interface')
-rw-r--r-- | haddock-api/src/Haddock/Interface/Specialize.hs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/haddock-api/src/Haddock/Interface/Specialize.hs b/haddock-api/src/Haddock/Interface/Specialize.hs index 66627c15..28806f04 100644 --- a/haddock-api/src/Haddock/Interface/Specialize.hs +++ b/haddock-api/src/Haddock/Interface/Specialize.hs @@ -178,19 +178,25 @@ parseTupleArity _ = Nothing -- not converted to 'String' or alike to avoid new allocations. Additionally, -- since it is stored mostly in 'Set', fast comparison of 'FastString' is also -- quite nice. -type NameRep = FastString +newtype NameRep + = NameRep FastString + deriving (Eq) + +instance Ord NameRep where + compare (NameRep fs1) (NameRep fs2) = uniqCompareFS fs1 fs2 + getNameRep :: NamedThing name => name -> NameRep -getNameRep = getOccFS +getNameRep = NameRep . getOccFS nameRepString :: NameRep -> String -nameRepString = unpackFS +nameRepString (NameRep fs) = unpackFS fs stringNameRep :: String -> NameRep -stringNameRep = mkFastString +stringNameRep = NameRep . mkFastString setInternalNameRep :: SetName name => NameRep -> name -> name -setInternalNameRep = setInternalOccName . mkVarOccFS +setInternalNameRep (NameRep fs) = setInternalOccName (mkVarOccFS fs) setInternalOccName :: SetName name => OccName -> name -> name setInternalOccName occ name = |