Size: a a a

2021 June 08

t

toriningen in Haskell
о, наконец-то обсуждение нормальных языков
источник

N

Nikita Ursol in Haskell
лол
источник

[

[BRM]White Rabbit in Haskell
скоро и до js дойдём
источник

t

toriningen in Haskell
ну в js статических типов нет, обсуждать особо нечего 🙂
источник

[

[BRM]White Rabbit in Haskell
если типов нет, то ты просто их не разглядел
источник

SP

Stanislav Popov in Haskell
перечитал два раза. вообще не понял что вы хотели сказать
источник

SP

Stanislav Popov in Haskell
номинальные типы там делаются через branding
источник

к

кана in Haskell
хотел сказать ровно то что сказал - дал простую вводную в тс
источник

к

кана in Haskell
брендинг это сам по себе не номинальные типы, ничего не мешает другому человеку создать случайно тот же тег брендинга, вот unique символы это уже номинальные типы
источник

t

toriningen in Haskell
если говорить про спецификацию, то статическая типизация там не предусмотрена. оптимизирующие движки выводят статические типы, где могут, а где не могут, все равно выводят и расставляют деоптимизирующие проверки
источник

t

toriningen in Haskell
*эмулируются. пока unique не будет применим для всего остального, де-факто их нет
источник

JS

Jerzy Syrowiecki in Haskell
источник
2021 June 09

ЖК

Жук Короед in Haskell

type Truth = Enum () :: Constraint

data KBool = 'KTrue | 'KFalse

type family Default (flag :: KBool) (a :: k) (b :: k) :: k
type instance Default 'KTrue a  _ = a
type instance Default 'KFalse _ b = b

cmp :: forall (flag :: KBool) a c
    . (Default flag Truth (Eq a), c ~ Default flag Int a)
   => c -> c -> c
cmp x y = x == y
Как сформулировать тип cmp, чтобы убедить компилятор, что в любом случае Eq c?
Было бы удобно, если бы можно было как-то дикт получить и использовать как док-во, но в constraint я не нашел как из Dict и a получить констрейнт, а у самого мозгов не хватает.
источник

MK

Maxim Koltsov in Haskell
Ты используешь Enum () как тривиально удовлетворенный констрейнт? Для этого можно просто () :: Constraint использовать
источник

ЖК

Жук Короед in Haskell
Только ()? Или любой тип подойдет? 🤔
источник

MK

Maxim Koltsov in Haskell
Это не тип, это пустой констрейнт
источник

MK

Maxim Koltsov in Haskell
В данном случае
источник

ЖК

Жук Короед in Haskell
А, понял, спасибо.
источник

MK

Maxim Koltsov in Haskell
На сам вопрос ответ не знаю
источник

YS

Yan Shkurinskiy in Haskell
А как наиболее просто дерайвить арбитрари?
источник