summaryrefslogtreecommitdiff
path: root/compiler/GHC/Tc/Gen
diff options
context:
space:
mode:
authorBodigrim <andrew.lelechenko@gmail.com>2022-09-28 00:15:53 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-09-28 17:50:28 -0400
commit2f050687e75ffe6fbf140cacd15fd916d2997499 (patch)
treeacd68576f0210c85f69b392cb10a7048ee97d17e /compiler/GHC/Tc/Gen
parentb0c89dfaf9f8aeda9dd69a9583fd29150099aa27 (diff)
downloadhaskell-2f050687e75ffe6fbf140cacd15fd916d2997499.tar.gz
Avoid Data.List.group; prefer Data.List.NonEmpty.group
This allows to avoid further partiality, e. g., map head . group is replaced by map NE.head . NE.group, and there are less panic calls.
Diffstat (limited to 'compiler/GHC/Tc/Gen')
-rw-r--r--compiler/GHC/Tc/Gen/Expr.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/GHC/Tc/Gen/Expr.hs b/compiler/GHC/Tc/Gen/Expr.hs
index c5c5616024..c2a680b3d4 100644
--- a/compiler/GHC/Tc/Gen/Expr.hs
+++ b/compiler/GHC/Tc/Gen/Expr.hs
@@ -88,7 +88,8 @@ import GHC.Types.Unique.Set ( UniqSet, mkUniqSet, elementOfUniqSet, nonDetEltsUn
import Language.Haskell.Syntax.Basic (FieldLabelString(..))
import Data.Function
-import Data.List (partition, sortBy, groupBy, intersect)
+import Data.List (partition, sortBy, intersect)
+import qualified Data.List.NonEmpty as NE
import GHC.Data.Bag ( unitBag )
@@ -1699,7 +1700,7 @@ badFieldsUpd rbinds data_cons
in
-- Fields that don't change the membership status of the set
-- are redundant and can be dropped.
- map (fst . head) $ groupBy ((==) `on` snd) growingSets
+ map (fst . NE.head) $ NE.groupWith snd growingSets
aMember = assert (not (null members) ) fst (head members)
(members, nonMembers) = partition (or . snd) membership