Re: ghc should be able to deduce correct use of partial functions and not give a warning in such cases

Andrew Lelechenko <[email protected]>
Newsgroups gmane.comp.lang.haskell.cafe
Message-ID <[email protected]>
Hi George,

If you do not want to pattern match on `ys`, the simplest solution is to do what the GHC warning suggests you to do and use `drop 1` instead of `tail`. Another alternative is `Data.List.uncons` followed by `Data.Maybe.maybe`. 

Best regards,
Andrew

> On 20 Apr 2024, at 13:28, George Colpitts <[email protected]> wrote:
> 
> Thanks for everybody's replies
> 
> To give more context the original code from Ch. 12 of Bird's Thinking Functionally with Haskell was:
> 
> let (xs, ys) = break (== ch) str in
>          if null ys then [] else [(xs, tail ys)])
> 
> I replaced it with 
> 
> let (xs, ys@(_ : t)) = break (== ch) str in
>          if null ys then [] else [(xs, t)])
> 
> On Tue, Apr 16, 2024 at 10:51 AM George Colpitts <[email protected] <mailto:[email protected]>> wrote:
>> ghc should be able to deduce correct use of partial functions and not give a warning in such cases, e.g. in 9.8.2
>> 
>>      if null ys then [] else [(xs,tail ys)])
>> 
>> gets a warning
>> 
>>       warning: [GHC-63394] [-Wx-partial]
>> 
>> but it is clear that this use of tail will never be a problem so IMHO that line of code should not get a warning. 
>> 
>> Does anybody know if there is a plan or enhancement request to eliminate such warnings? 
>> 
>> Cheers
>> George
>> 
>> 
>> 
>> 
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.