Correct behaviour of Bounded (Down a)

Asad Saeeduddin masaeedu at gmail.com
Fri Sep 18 18:33:41 UTC 2020


This is something I've never understood about `Enum`. How can a type be 
in bijection with the integers, but simultaneously have a minimum and 
maximum bound?

On 9/18/20 10:40 AM, Oleg Grenrus wrote:
>
> Is it (a bug)?
>
> What about [minBound .. maxBound]. If you change `Bounded`, you need 
> to change `Enum` too.
>
> From 
> https://hackage.haskell.org/package/base-4.14.0.0/docs/GHC-Enum.html#t:Enum
>
> - The calls succ maxBound and pred minBound should result in a runtime 
> error.
> - enumFrom and enumFromThen should be defined with an implicit bound
>
> The `min` and `max` in `minBound/maxBound` are related to `succ`, 
> `pred`, not to `compare`. If you argue against, then we should add 
> `Ord` super-class to `Enum` (and `Bounded`).
>
> - Oleg
>
> On 18.9.2020 16.54, Carter Schonwald wrote:
>> Def a bug! Plz at myself and the core libraries handle for code 
>> review plz.
>>
>> This sounds kinda related to an MR that has languished too long 
>> regarding the behavior of Down on Ord1, which I think is related??? 
>> (I tried to arbitrate / layout possible answers for the related issue 
>> in the associated mr, but none of the clc members have engaged in the 
>> design space challenge)
>>
>> On Fri, Sep 18, 2020 at 7:44 AM David Beacham <mail at dbeacham.co.uk 
>> <mailto:mail at dbeacham.co.uk>> wrote:
>>
>>     Hi all,
>>
>>     The current instance for `Bounded a => Bounded (Down a)` derives
>>     the `minBound` and `maxBound` exactly as they are for the
>>     underlying type `a` where I think they should be flipped to
>>     respect the flipped ordering of `Down a`?
>>
>>     I have a feeling this has been come up in some other context/list
>>     before but I couldn't find a reference to it when searching - so
>>     sorry if this is a duplicate.
>>
>>     I've got a corresponding MR here:
>>     https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4081
>>
>>     Thanks, David.
>>
>>
>>     _______________________________________________
>>
>>     Libraries mailing list
>>
>>     Libraries at haskell.org <mailto:Libraries at haskell.org>
>>
>>     http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20200918/644ef9c0/attachment.html>


More information about the Libraries mailing list