base: Explicitly mark Data.Either.{left,right} as INLINABLE
authorBen Gamari <bgamari.foss@gmail.com>
Sat, 20 May 2017 16:48:03 +0000 (12:48 -0400)
committerBen Gamari <ben@smart-cactus.org>
Sat, 20 May 2017 20:29:18 +0000 (16:29 -0400)
Test Plan: read it

Reviewers: dfeuer, austin, hvr, nomeata

Reviewed By: dfeuer, nomeata

Subscribers: nomeata, rwbarton, thomie

GHC Trac Issues: #13689

Differential Revision: https://phabricator.haskell.org/D3576

libraries/base/Data/Either.hs

index 437d87c..2469e78 100644 (file)
@@ -178,6 +178,7 @@ either _ g (Right y)    =  g y
 --
 lefts   :: [Either a b] -> [a]
 lefts x = [a | Left a <- x]
+{-# INLINEABLE lefts #-} -- otherwise doesnt get an unfolding, see #13689
 
 -- | Extracts from a list of 'Either' all the 'Right' elements.
 -- All the 'Right' elements are extracted in order.
@@ -192,6 +193,7 @@ lefts x = [a | Left a <- x]
 --
 rights   :: [Either a b] -> [b]
 rights x = [a | Right a <- x]
+{-# INLINEABLE rights #-} -- otherwise doesnt get an unfolding, see #13689
 
 -- | Partitions a list of 'Either' into two lists.
 -- All the 'Left' elements are extracted, in order, to the first