Because if e contains

            …(case x of Foo p q -> e2)…

as a sub-expression, we’d like to simplify it.

 

Sorry that is not documented; please do add that to the comments in the source code.

 

Simon

 

From: ghc-devs <ghc-devs-bounces@haskell.org> On Behalf Of Matthew Pickering
Sent: 11 May 2018 15:54
To: GHC developers <ghc-devs@haskell.org>
Subject: Motivation for refineDefaultAlt

 

Hi all,

 

Does anyone know the motivation for refineDefaultAlt?

The comment states

- -- | Refine the default alternative to a 'DataAlt', if there is a unique way to do so.

OK - so the code transforms something like

case x of { DEFAULT -> e }
===>

case x of { Foo a1 a2 a3 -> e }


but why is this necessary or desirable?

Perhaps you know Simon (Jakobi)?

Cheers,

 

Matt