Size: a a a

2020 May 22

к

кана in Haskell
MyNum, потому что иначе нужно как-то оверлапить
источник

к

кана in Haskell
а вот и для Num
источник

к

кана in Haskell
можно как без инстансов (тогда это просто функция из Void), можно и без констрейнтов

обе ошибки правильные, но второе компилятору вывести намного проще, потому что он просто ищет инстансы и не находит инстанс для любого типа, вот вам и ошибка что инстанса для любого типа нет
источник

MK

Maxim Koltsov in Haskell
у меня есть ленивый байтстринг, который передаю во wreq и он его загружает на сервер (стримит, видимо)
я хочу замерить сколько времени вычисляется сам байтстринг, допустим сделать trace в конце вычисления
как это сделать?

я ведь не могу завернуть байтстринг в unsafePerformIO с форсом, потому что убьёт стриминг
источник

AA

A64m AL256m qn<co... in Haskell
кана
можно как без инстансов (тогда это просто функция из Void), можно и без констрейнтов

обе ошибки правильные, но второе компилятору вывести намного проще, потому что он просто ищет инстансы и не находит инстанс для любого типа, вот вам и ошибка что инстанса для любого типа нет
нет, если без инстансов это полиморфная функция, ее можно сбилдить и через миллион лет использовать написав инстанс. для тайпчека и компиляции ни один инстанс не нужен, нужен только класс
источник

к

кана in Haskell
не понимаю
источник

к

кана in Haskell
вот есть код

f :: a -> a -> a
f x y = x + y

вы утверждаете, что чтобы этот код собрать, нужно добавить констрейнт, а инстанс можно не добавлять

я утверждаю, что есть другой путь, можно НЕ добавлять констрейнт, а добавить инстанс

и для второго варианта как раз и ошибка
источник

к

кана in Haskell
это не функция, которая полиморфная по разным инстансам, это функция по конкретному инстансу forall a. Num a, и именно об отстутствии такого инстанса и ошибка
источник

AA

A64m AL256m qn<co... in Haskell
ну не обязательно инстанс, просто нерабочую функцию с сигнатурой, которая в принципе не позволяет рабочую функцию написать
источник

AA

A64m AL256m qn<co... in Haskell
не думаю, что "в принципе нерабочий инстанс" это вариант
источник

к

кана in Haskell
ну компилятор-то это не анализировал

он видит что тип у f a -> a -> a
никаких констрейнтов нет
значит нужно искать инстанс Num a, независимо от того, рабочий он или нет (Сложение даже вполне можно написать для такого инстанса)
а его нет
значит ошибка

add :: a -> a -> a
add x y = x
источник

AA

A64m AL256m qn<co... in Haskell
т.е. это просто казуистика, да, можно такое незавершающееся объявление сделать, что все тайпчекнется, для любой ошибки типов, но чет. не думаю, что это надо советовать в сообщении об ошибке как какой-то осмысленный вариант
источник

к

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

к

кана in Haskell
но ошибки в нем нет
источник

MK

Maxim Koltsov in Haskell
источник

MK

Maxim Koltsov in Haskell
Погодите, это настоящее имя айсланд джека?
источник

AA

A64m AL256m qn<co... in Haskell
да
источник

AA

A64m AL256m qn<co... in Haskell
настоящее имя Бальдр
источник

MK

Maxim Koltsov in Haskell
Я думал это псевдоним такой
Типа из мифологии
источник

MK

Maxim Koltsov in Haskell
И он реально исландец?
источник