@@ -87,6 +87,13 @@ getResultModuleName (PackResult r) = ""
8787getResultModuleName (MdlResult r) = r.name
8888
8989
90+getResultName :: Result -> String
91+getResultName (DeclResult r) = (unwrap r).name
92+getResultName (TypeResult r) = (unwrap r).name
93+getResultName (PackResult r) = r.name
94+getResultName (MdlResult r) = r.name
95+
96+
9097sortByPopularity
9198 :: forall index typeIndex
9299 . EngineState index typeIndex
@@ -96,7 +103,10 @@ sortByPopularity { packageIndex } =
96103 Array.sortBy (
97104 compare `on` (getResultScore >>> negate) <>
98105 compare `on` getResultPackageName <>
99− compare `on` getResultModuleName
106+ compare `on` getResultModuleName <>
107+ -- Identifier name comes last: we want to make sure no `Result`s are
108+ -- equal, to avoid having unstable ordering.
109+ compare `on` getResultName
100110 )
101111
102112