[ghc-steering-committee] Amend or patterns (#522) to use p1 ; p2 (#609)

Vladislav Zavialov vlad.z.4096 at gmail.com
Fri Sep 8 17:47:02 UTC 2023


In favor

On Fri, Sep 8, 2023 at 6:36 PM Simon Peyton Jones <
simon.peytonjones at gmail.com> wrote:

> I don't have a strong opinion here.   The authors have done a pretty
> diligent job of exploring syntactic alternatives, and seeking feedback from
> the community.  I'm quite content to accept this proposal.  (We have
> already accepted the base or-pattern proposal, so that's not our subject
> for debate.)
>
> Simon
>
> On Fri, 8 Sept 2023 at 03:57, Chris Dornan <chris at chrisdornan.com> wrote:
>
>> Proposal: Amend or patterns (#522) to use p1 ; p2 (#609)
>> Author: Sebastian Graf, David Knothe
>> Rendered proposal:
>> https://github.com/ghc-proposals/ghc-proposals/blob/eb4b67c29282520b2c5c6a49c3047dbecb15dde1/proposals/0522-or-patterns.rst
>> Discussion: https://github.com/ghc-proposals/ghc-proposals/pull/609
>> Recommendation: Acceptance
>>
>> ## Summary
>>
>> This proposal refines the syntax of an already accpted proposal (#522)
>> for writing or patterns.
>>
>> The syntax of the old proposal,
>>
>> ```haskell
>> stringOfT :: T -> Maybe String
>> stringOfT (T1 s) = Just s
>> stringOfT (one of T2{}, T3{}) = Nothing
>> ```
>>
>> is replaced with
>>
>> ```haskell
>> stringOfT :: T -> Maybe String
>> stringOfT (T1 s) = Just s
>> stringOfT (T2{}; T3{}) = Nothing
>> ```
>>
>> or indeed
>>
>> ```haskell
>> stringOfT :: T -> Maybe String
>> stringOfT x = case x of
>> T1 s -> Just s
>> T2{}
>> T3{} -> Nothing
>> ```
>>
>> (Beacuse the '(' ... ')' are optional here, we can remove them and
>> naturally exploit layout.)
>>
>> The authors have conducted polls to see what folks preferred, landing on
>> this proposal. The
>> adjustments to the Haskell grammar are really quite minimal requiring one
>> extra production.
>>
>> ## Recommendation
>>
>> The proposal is nondiruptive and as a whole addresses an important
>> practical topic. I recommend
>> that we accept it
>>
>> _______________________________________________
>> ghc-steering-committee mailing list
>> ghc-steering-committee at haskell.org
>> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>>
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20230908/83c4db50/attachment.html>


More information about the ghc-steering-committee mailing list