[Haskell-cafe] incomplete-uni-patterns

Henning Thielemann lemming at henning-thielemann.de
Thu Jan 26 01:06:00 UTC 2023


On Thu, 26 Jan 2023, Kazu Yamamoto (山本和彦) via Haskell-Cafe wrote:

> The recent GHC added incomplete-uni-patterns to the -Wall option.
> So, we have a waning with the following code:
>
>    let [addr,port] = args
>
> To avoid this, I changed the code to:
>
>    let addr = head args
>        port = head $ tail args

Both are partial and should be avoided. I have a nestable NonEmpty that 
lets you use NonEmpty (NonEmpty []) for a list of at least two elements:
   https://hackage.haskell.org/package/non-empty-0.3.3/docs/Data-NonEmpty.html


> In my opinion, this seems Lisp rather than Haskell.
>
> Also, I need to avoid:
>
>    let Just val = mval
>
> Rahter, I use:
>
>    let val = fromJust mval
>
> This is annoying to me.

If you are sure that the Maybe is always Just, why use Maybe in the first 
place?


More information about the Haskell-Cafe mailing list