Correct behaviour of Bounded (Down a)

Carter Schonwald carter.schonwald at gmail.com
Fri Sep 18 19:13:29 UTC 2020


Good questions!

1) enum unfortunately uses int

2) there’s no reason for there not to be lots of bijections! The barrier or
obstacle I think you’re envisioning is if you want the bijection to
preserve ordering. Right?

On Fri, Sep 18, 2020 at 2:34 PM Asad Saeeduddin <masaeedu at gmail.com> wrote:

>
>
>
>
>
>
>
>
>
>
> 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>
>
> 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
>>
>>
>>
>>
>>
>> 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
>
>
>
>
>
>
>
>
>
> _______________________________________________
>
> 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/de12246f/attachment.html>


More information about the Libraries mailing list