> Hi all,
>
> the attached patch makes the `(or)` type specifier invalid, as opposed
> to being simplified to `*`.
> This is more consistent with the mathematical interpretation of an empty
> (sum) type being the bottom type having no inhabitants.
> This is very explicit in OCaml, for example,
> It certainly shouldn't be *, nor should it be an error... technically an
> empty union should be a null set, which would correspond to either a
> non-extant type or to no return/value at all...
Well, the problem is: there is no non-extant type, no "bottom": we simply use
the Scheme type
On Tue, Sep 26, 2023 at 12:33:43PM +0300, elf wrote:
> It certainly shouldn't be *, nor should it be an error... technically an
> empty union should be a null set, which would correspond to either a
> non-extant type or to no return/value at all...
We've discussed this on IRC. Such a null type
It certainly shouldn't be *, nor should it be an error... technically an empty
union should be a null set, which would correspond to either a non-extant type
or to no return/value at all...
-elf
On 26 September 2023 12:02:56 GMT+03:00, Pietro Cerutti wrote:
>Hi all,
>
>the attached patch
Hi all,
the attached patch makes the `(or)` type specifier invalid, as opposed
to being simplified to `*`.
This is more consistent with the mathematical interpretation of an empty
(sum) type being the bottom type having no inhabitants.
This is very explicit in OCaml, for example, where the