Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Думаю если if без else это Maybe, то по идее if+else это Variant (в таком случае есть некоторая симметрия: Maybe<T> это грубо говоря Variant<T, void>).
EP>А сейчас видимо для if+else просто общий тип выводится?
Для того, чтобы вычисление if+else в Variant имело смысл, его синтаксис должен позволять избегать вложенности. Иначе на выходе гипотетического:
if(a(x))
"a"
else
if(b(x))
1
else
if(c(x))
0.1
else
Some(x)
Получим variant[string, variant[int, variant[decimal, option[T]]]]. Что несколько не удобно, имхо. Если идти по такому пути, то надо иметь возможноть получать какой-нибудь variant[string, int, decimal, option[T]]
---
С уважением, Константин Сиваков