summaryrefslogtreecommitdiff
path: root/source/Syntax/Adapt.hs
diff options
context:
space:
mode:
authoradelon <22380201+adelon@users.noreply.github.com>2026-02-05 02:27:11 +0100
committeradelon <22380201+adelon@users.noreply.github.com>2026-02-05 02:27:11 +0100
commit6a6878cf7eddb5d8cd3f64a20de4e7ac0d0baa76 (patch)
treee070be98c4f21f0a8870badf62063f02468d5344 /source/Syntax/Adapt.hs
parentfdf5da8109401ba8ee2fb6d107300f41f48877e9 (diff)
Use `Map` over `HashMap`
Diffstat (limited to 'source/Syntax/Adapt.hs')
-rw-r--r--source/Syntax/Adapt.hs18
1 files changed, 8 insertions, 10 deletions
diff --git a/source/Syntax/Adapt.hs b/source/Syntax/Adapt.hs
index 5f067ab..62a12e1 100644
--- a/source/Syntax/Adapt.hs
+++ b/source/Syntax/Adapt.hs
@@ -14,8 +14,6 @@ import Data.Map.Strict qualified as Map
import Data.Maybe (catMaybes)
import Data.Set qualified as Set
import Data.Sequence qualified as Seq
-import Data.HashSet qualified as HS
-import Data.HashMap.Strict qualified as HM
import Data.Text qualified as Text
import Text.Earley.Mixfix (Associativity(..))
import Text.Regex.Applicative
@@ -394,22 +392,22 @@ isAdjR item = containsPreposition item || containsSlot item
containsSlot = (Nothing `elem`)
isPreposition :: Token -> Bool
-isPreposition w = HS.member w (HS.map Word prepositions)
+isPreposition w = Set.member w (Set.map Word prepositions)
-- | Right-biased set insertion, keeping the original set
-- when inserting already present elements. @insertR@ is unfortunately
-- a hidden function, even in @Data.Set.Internal@, so we approximate it
-- here. In theory one could avoid the indirection of first forming the singleton
-- set on the rhs.
-insertR' :: Hashable a => a -> HashSet a -> HashSet a
-insertR' x xs = xs `HS.union` HS.singleton x -- @union@ is left-biased.
+insertR' :: Ord a => a -> Set a -> Set a
+insertR' x xs = xs `Set.union` Set.singleton x -- @union@ is left-biased.
insertMapR :: Ord k => k -> a -> Map k a -> Map k a
insertMapR k x xs = xs `Map.union` Map.singleton k x -- @union@ is left-biased.
-insertR :: Hashable k => k -> a -> HashMap k a -> HashMap k a
-insertR k x xs = xs `HM.union` HM.singleton k x -- @union@ is left-biased.
+insertR :: Ord k => k -> a -> Map k a -> Map k a
+insertR k x xs = xs `Map.union` Map.singleton k x -- @union@ is left-biased.
-- | Takes the scanned lexical phrases and inserts them in the correct
-- places in a lexicon.
@@ -432,11 +430,11 @@ extendLexicon (scan : scans) lexicon@Lexicon{..} = case scan of
ScanRelationSymbol item m ->
extendLexicon scans lexicon{lexiconRelationSymbols = insertR item m lexiconRelationSymbols}
ScanFunctionSymbol item m ->
- if item `HM.member` lexiconMixfixMarkers
+ if item `Map.member` lexiconMixfixMarkers
then extendLexicon scans lexicon
else extendLexicon scans lexicon
- { lexiconMixfixTable = Seq.adjust (HM.insert item NonAssoc) 9 lexiconMixfixTable
- , lexiconMixfixMarkers = HM.insert item m lexiconMixfixMarkers
+ { lexiconMixfixTable = Seq.adjust (Map.insert item NonAssoc) 9 lexiconMixfixTable
+ , lexiconMixfixMarkers = Map.insert item m lexiconMixfixMarkers
}
ScanStructOp op ->
extendLexicon scans lexicon{lexiconStructFun = insertR (StructSymbol op) (Marker op) lexiconStructFun}