Re: NamedDefaults and relaxed defaults?

2023-07-26 Thread Benjamin Redelings

On 7/26/23 6:46 PM, Benjamin Redelings wrote:


Thanks!

It looks like ExtendedDefaultRules already allows default variables 
that co-occur with multiparameter constraints and non-standard 
classes.  So maybe that solves my issue with (Num a, Convertible a 
Double).



It looks like (Num a, Convertible Double a) would work differently:

- with ExtendedDefaultRules, GHC would pick a ~ Integer (ignoring the 
Convertible constraint) and then complain that Convertible Double 
Integer has no instance.


- with NamedDefaults, GHC would reject a ~ Integer because Convertible 
Double Integer fails and then choose a ~ Double, which succeeds.


-BenRI


Does the defaulting for RuntimeRep interact with class defaulting?

-BenRI

On 7/26/23 12:11 PM, Simon Peyton Jones wrote:
No: I don't know of anyone planning to implement this proposal -- 
indeed I had forgotten about it -- so it's waiting for someone to 
take it on.


There are some slightly tricky loose ends around defaulting that it'd 
be good to nail down first: 
https://gitlab.haskell.org/ghc/ghc/-/issues/20686


Simon

On Wed, 26 Jul 2023 at 11:00, Benjamin Redelings 
 wrote:


Hi,

If I understand correctly, the traditional defaulting rules prevent
defaulting variables with constraints like (Num a, Convertible a
Double), but the NamedDefaults proposal would allow defaulting a ~
Double in this case due to the relaxed defaulting rules in
section 2.5
of the proposal:


https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst#id2

1. Is there any plan to start implementing NamedDefaults?  I saw the
comment from Simon P-J that it would not be fun to implement
because it
might require orphan default declarations... so perhaps there's
no plan
to implement this?

2. Would it be worth adding a separate LANGUAGE option that just
implements the relaxed defaulting rules in section 2.5?
Specifically (a)
allowing variables with multiparameter constraints and (b) allowing
variables with constraints that are not in the Prelude.

3. Am I correct in assuming that the relaxed defaulting rules
require
NamedDefaults to be enabled in the importing module, and not just
in the
imported model?

-BenRI
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: NamedDefaults and relaxed defaults?

2023-07-26 Thread Benjamin Redelings

Thanks!

It looks like ExtendedDefaultRules already allows default variables that 
co-occur with multiparameter constraints and non-standard classes.  So 
maybe that solves my issue with (Num a, Convertible a Double).


Does the defaulting for RuntimeRep interact with class defaulting?

-BenRI

On 7/26/23 12:11 PM, Simon Peyton Jones wrote:
No: I don't know of anyone planning to implement this proposal -- 
indeed I had forgotten about it -- so it's waiting for someone to take 
it on.


There are some slightly tricky loose ends around defaulting that it'd 
be good to nail down first: 
https://gitlab.haskell.org/ghc/ghc/-/issues/20686


Simon

On Wed, 26 Jul 2023 at 11:00, Benjamin Redelings 
 wrote:


Hi,

If I understand correctly, the traditional defaulting rules prevent
defaulting variables with constraints like (Num a, Convertible a
Double), but the NamedDefaults proposal would allow defaulting a ~
Double in this case due to the relaxed defaulting rules in section
2.5
of the proposal:


https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst#id2

1. Is there any plan to start implementing NamedDefaults?  I saw the
comment from Simon P-J that it would not be fun to implement
because it
might require orphan default declarations... so perhaps there's no
plan
to implement this?

2. Would it be worth adding a separate LANGUAGE option that just
implements the relaxed defaulting rules in section 2.5?
Specifically (a)
allowing variables with multiparameter constraints and (b) allowing
variables with constraints that are not in the Prelude.

3. Am I correct in assuming that the relaxed defaulting rules require
NamedDefaults to be enabled in the importing module, and not just
in the
imported model?

-BenRI
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: NamedDefaults and relaxed defaults?

2023-07-26 Thread Simon Peyton Jones
No: I don't know of anyone planning to implement this proposal -- indeed I
had forgotten about it -- so it's waiting for someone to take it on.

There are some slightly tricky loose ends around defaulting that it'd be
good to nail down first: https://gitlab.haskell.org/ghc/ghc/-/issues/20686

Simon

On Wed, 26 Jul 2023 at 11:00, Benjamin Redelings <
benjamin.redeli...@gmail.com> wrote:

> Hi,
>
> If I understand correctly, the traditional defaulting rules prevent
> defaulting variables with constraints like (Num a, Convertible a
> Double), but the NamedDefaults proposal would allow defaulting a ~
> Double in this case due to the relaxed defaulting rules in section 2.5
> of the proposal:
>
>
> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst#id2
>
> 1. Is there any plan to start implementing NamedDefaults?  I saw the
> comment from Simon P-J that it would not be fun to implement because it
> might require orphan default declarations... so perhaps there's no plan
> to implement this?
>
> 2. Would it be worth adding a separate LANGUAGE option that just
> implements the relaxed defaulting rules in section 2.5? Specifically (a)
> allowing variables with multiparameter constraints and (b) allowing
> variables with constraints that are not in the Prelude.
>
> 3. Am I correct in assuming that the relaxed defaulting rules require
> NamedDefaults to be enabled in the importing module, and not just in the
> imported model?
>
> -BenRI
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


NamedDefaults and relaxed defaults?

2023-07-26 Thread Benjamin Redelings

Hi,

If I understand correctly, the traditional defaulting rules prevent 
defaulting variables with constraints like (Num a, Convertible a 
Double), but the NamedDefaults proposal would allow defaulting a ~ 
Double in this case due to the relaxed defaulting rules in section 2.5 
of the proposal:


https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0409-exportable-named-default.rst#id2

1. Is there any plan to start implementing NamedDefaults?  I saw the 
comment from Simon P-J that it would not be fun to implement because it 
might require orphan default declarations... so perhaps there's no plan 
to implement this?


2. Would it be worth adding a separate LANGUAGE option that just 
implements the relaxed defaulting rules in section 2.5? Specifically (a) 
allowing variables with multiparameter constraints and (b) allowing 
variables with constraints that are not in the Prelude.


3. Am I correct in assuming that the relaxed defaulting rules require 
NamedDefaults to be enabled in the importing module, and not just in the 
imported model?


-BenRI
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs