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

Chris Dornan chris at chrisdornan.com
Fri Sep 8 10:57:25 UTC 2023


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20230908/bb84003c/attachment.html>


More information about the ghc-steering-committee mailing list