[ghc-steering-committee] Proposal #281: Visible "forall" in terms; rec: accept

Vladislav Zavialov (int-index) vlad.z.4096 at gmail.com
Fri Oct 29 22:06:41 UTC 2021


There’s indeed a similarity, but also some differences. Optional parameters are typically defaulted rather than inferred by unification, and they can be passed by name rather than by position. Both of those would be welcome additions to Haskell, y the way (at least in my opinion, surely this also would need a full proposal).

Those features wouldn’t be a replacement for visible forall, though, but an addition. So before we continue this discussion: what do we think of the proposal at hand?

Richard, you were planning to merge today. My interpretation of Eric’s position (correct me if I’m misrepresenting) is that there are some unfortunate consequences of the proposed design, but we are more or less forced into it by the SUP and other constraints, so there don’t appear to be any better alternatives.

Shall we pull the trigger?

- Vlad

> On 30 Oct 2021, at 00:17, Eric Seidel <eric at seidel.io> wrote:
> 
> On Fri, Oct 29, 2021, at 13:56, Richard Eisenberg wrote:
>> 2. We would like some type arguments to be visible and some to be 
>> invisible. This is the nub of the motivation for #281.
> 
> Possibly a slight tangent, but if I were to replace every occurrence of "visible" with "required" and "invisible" with "optional", would that be a valid way of reading the discussion around visibility? For some reason the terminology has always been a bit confusing.
> 
> Veering off a bit further, if the above substitution is valid, would visibility give us a formalism to deal with optional *value* arguments? It's always bothered me that OCaml has optional/named parameters but Haskell does not.
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee



More information about the ghc-steering-committee mailing list