On Wed, Jun 10, 2015 at 12:11 PM, Roman Cheplyaka <roma@ro-che.info> wrote:
On 10/06/15 21:50, wren romano wrote:
> On Thu, Jun 4, 2015 at 11:43 PM, Edward Z. Yang <ezyang@mit.edu> wrote:
>> GHC used to always generalize let-bindings, but our experience
>> with GADTs lead us to decide that let should not be generalized
>> with GADTs.  So, it's not like we /wanted/ MonoLocalBinds, but
>> that having them makes the GADT machinery simpler.
>>
>> This blog post gives more details on the matter:
>>     https://ghc.haskell.org/trac/ghc/blog/LetGeneralisationInGhc7
>
> The fact that -XGADTs (in isolation) implies -XMonoLocalBinds isn't
> the problem. The problem is, the order in which language pragma are
> offered should not matter. Whether I say {-# LANGUAGE GADTs,
> NoMonoLocalBinds #-} or {-# LANGUAGE NoMonoLocalBinds, GADTs #-}
> shouldn't matter. Both should mean the same thing, regardless of how
> annoying it may be to work in that language.

The current behavior may be surprising if you are not aware of it, but
it's the only sensible one. Otherwise, what should the meaning of

{-# LANGUAGE MonoLocalBinds, NoMonoLocalBinds #-}

be?

Roman


Arguably it should be a compiler warning.

-Nathan

 

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe