Size: a a a

2021 June 22

MK

Maxim Koltsov in Haskell
а, ты к тому что имя выдаёт без скобок?
источник

MK

Maxim Koltsov in Haskell
да, видимо я путаю
источник

M

Misha in Haskell
По идеи, если конструкторы принимают разные типы, то можно использовать GADT
источник

M

Misha in Haskell
нее, я ошибся, мне казалось, что GADT по другому работают, там придётся ещё тип параметризовать, что явно не то
источник

JS

Jerzy Syrowiecki in Haskell
точность модели повышается
источник

JS

Jerzy Syrowiecki in Haskell
невалидное выражение, но валидное имя
источник

A

Aleksandr Khristenko in Haskell
Если честно, не вижу поучему тут точность вырастет. Если бы отдельные ветви адт были отдельными типами точность была бы та-же.
источник

JS

Jerzy Syrowiecki in Haskell
вот именно это вы и хотите — отдельные ветви вынести в отдельные типы. кому-то было бы удобнее, если бы каждая ветка автоматически создавала тип? возможно. не факт
источник

JS

Jerzy Syrowiecki in Haskell
мне иногда хочется, чтобы в Хаскеле можно было на ходу создавать type-tagged union

takeEither :: (First | Second | Third) -> Text
takeEither = \case
 First _ t -> t
 Second _ t -> t
 _ :: Third -> "third"
источник

K

Kir in Haskell
type (<|>) = Either
источник

к

кана in Haskell
не, это не то, с Either еще путь нужно указывать
источник

к

кана in Haskell
а так это же open union делает
источник

K

Kir in Haskell
И то верно
источник

к

кана in Haskell
можно добавить паттерн синоним, вышло бы

takeEither :: Union [First, Second, Third] -> Text
takeEither = \case
 P (First _ t) -> t
 P (Second _ t) -> t
 P (_ :: Third) -> "third"
источник

JS

Jerzy Syrowiecki in Haskell
да, если не обращать внимания на лишние слова. а я обращаю
источник

JS

Jerzy Syrowiecki in Haskell
как исчерпание проверять?
источник

к

кана in Haskell
наверное никак
источник

K

Kir in Haskell
takeEither :: Sum [F, S, T] -> Text
takeEither s = case project s of
 Right (F t) -> t
 Left s' -> case project s' of
   Right (S t) -> t
   Left s'' -> case project s'' of
     Right _ -> "third"
источник

JS

Jerzy Syrowiecki in Haskell
ну вот я имел в виду сахар над этим всем
источник

IK

Ilya Kos in Haskell
источник