shithub: MicroHs

Download patch

ref: 5a5f8336492b005277dd361f905f2d72f8f14a9a
parent: 2305ed59cc21a5da28047c88277bea04371a33c3
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Mon Oct 23 07:35:32 EDT 2023

Get rid of eqEntry

--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -9,6 +9,7 @@
   mkSuperSel,
   bindingsOf,
   ) where
+import Data.Eq -- XXX why needed?
 import Prelude --Xhiding(showList)
 import Data.Char
 import Data.List
@@ -61,6 +62,9 @@
   EType            -- type/kind of identifier
   --Xderiving(Show)
 
+instance Eq Entry where
+  Entry x _ == Entry y _  =  getIdent x == getIdent y
+
 entryType :: Entry -> EType
 entryType (Entry _ t) = t
 
@@ -265,7 +269,7 @@
         syms (is, TModule mn _ tes _ _ _ ves _) =
           [ (v, [e]) | ValueExport i e    <- ves,                        v <- qns is mn i ] ++
           [ (v, [e]) | TypeExport  _ _ cs <- tes, ValueExport i e <- cs, v <- qns is mn i ]
-      in  M.fromListWith (unionBy eqEntry) $ concatMap syms mdls
+      in  M.fromListWith union $ concatMap syms mdls
     allSyns =
       let
         syns (_, TModule _ _ _ ses _ _ _ _) = ses
@@ -274,7 +278,7 @@
     allTypes =
       let
         types (is, TModule mn _ tes _ _ _ _ _) = [ (v, [e]) | TypeExport i e _ <- tes, v <- qns is mn i ]
-      in M.fromListWith (unionBy eqEntry) $ concatMap types mdls
+      in M.fromListWith union $ concatMap types mdls
     allFixes =
       let
         fixes (_, TModule _ fes _ _ _ _ _ _) = fes
@@ -306,13 +310,6 @@
     mrg e1 e2 = if eqExpr e1 e2 then e1 else errorMessage (getSLocExpr e1) $ "Multiple instances: " ++ showSLoc (getSLocExpr e2)
     l = unionBy eqInstDict l1 l2
   in  InstInfo m l
-
-eqEntry :: Entry -> Entry -> Bool
-eqEntry x y =
-  case x of
-    Entry ix _ ->
-      case y of
-        Entry iy _ -> (getIdent ix) == (getIdent iy)
 
 getIdent :: Expr -> Ident
 getIdent ae =
--