November 15
Truly algebraic Variant and Nullable with an order-independent list of types.

Nullable is defined as
```
alias Nullable(T...) = Variant!(typeof(null), T);
```

Variant and Nullable with zero types are allowed.

`void` type is supported.

Visitors are allowed to return different types.

Cyclic referencing between different variant types are supported.

More features and API:

http://mir-core.libmir.org/mir_algebraic.html

Cheers,
Ilya

The work has been sponsored by Kaleidic Associates and Symmetry Investments.

November 15
On Sunday, 15 November 2020 at 04:54:19 UTC, 9il wrote:
> Truly algebraic Variant and Nullable with an order-independent list of types.
>
> Nullable is defined as
> ```
> alias Nullable(T...) = Variant!(typeof(null), T);
> ```
>
> Variant and Nullable with zero types are allowed.
>
> `void` type is supported.
>
> Visitors are allowed to return different types.
>
> Cyclic referencing between different variant types are supported.
>
> More features and API:
>
> http://mir-core.libmir.org/mir_algebraic.html
>
> Cheers,
> Ilya
>
> The work has been sponsored by Kaleidic Associates and Symmetry Investments.

It should be in the standard library.