кана
Cheese
поясню более детально data X a = ... class A x y ... fun :: x -> y type B = A X
может, как-то так? class A X y => B y instance A X y => B y
Зигохистоморфный
ну ты взял и определил инстанс для A
Зигохистоморфный
а надо без определения инстансов для A
кана
ну тогда вообще не понятно, что ты хочешь
Зигохистоморфный
считай это хитрым абстрактным классом
Cheese
не пойму, чем инстанс мешает
кана
наверное круто было бы какой-то реальный пример использования с псевдокодом
кана
а то пока звучит как бессмыслица, пока понял, что хочется что-то вроде открытой суммы классов
кана
типа есть A и есть множество классов, которые в A
Зигохистоморфный
data X a = ... class Functor f => A f x where someFn :: f x -> String class B = A X instance B SomeType where someFn :: ?
Зигохистоморфный
нигде для A не делается инстансов
кана
data X a = ... class Functor f => A f x where someFn :: f x -> String class B = A X instance B SomeType where someFn :: ?
я не понимаю этот код, тут же каинды не сходятся
кана
X у тебя Type->Type
Зигохистоморфный
исправил
кана
а чего не подходит "семейство классов", где индекс - первый аргумент
кана
то есть почему нельзя просто сделать instance A X SomeType? подразумевается, что A X может быть много?
кана
тогда можно добавить еще один индекс
Зигохистоморфный
A X будет фиксирован
Зигохистоморфный
меняется только b
Зигохистоморфный
вот я и хочу что-то частичного применения для тайпклассов
кана
то есть чтобы прояснить, никакой пользы от этого нет, ты просто хочешь более красивый код?
кана
то есть не писать постоянно A X Int A X String
кана
а просто B Int B String?
Зигохистоморфный
в принципе да
кана
или же в этом есть какая-то польза/мощность, которую я не понял?
Зигохистоморфный
болерплейт не хочется
кана
data X a deriving Functor data A f x where A :: Functor f => { someFn :: f x -> String } -> A f x type B = A X bInstance1 :: B Int bInstance1 = A{..} where someFn _ = "1" bInstance2 :: B String bInstance2 = A{..} where someFn _ = "2" тогда единственная идея - сделать на явных словариках
Cheese
фигнёй занимаетесь. лучше бы драйвер для Постгреса написали
A64m
хотя бы хештаблицу нормальную
Anonymous
А ghc-mod уже починили?
Dmitry
А его надо чинить?
Dmitry
Есть же hie
Anonymous
Для 8.6.1
Anonymous
А hie делает всё то же, что и ghc-mod?
Yura
ghc-mod забросили
Yura
в пользу hie
Yura
т.е. его поддержка по остаточному принцыпу
Dmitry
https://github.com/haskell/haskell-ide-engine/blob/master/README.md#this-is-not-yet-another-ghc-mod-or-ide-backend-project
A64m
hie использует гхц-мод
Anonymous
новую вилку ghc-mod?
A64m
да, они его допиливают, хотя официальный уже давно не релизится
a66ath
hie вроде даже правильно сделан
Евгений (Владимирович)
https://www.fpcomplete.com/blog/2018-haskell-survey-results
Евгений (Владимирович)
Рассказывают как все в восторге от хаскеля (кто пользуется)
Alexander
не верю
Alexander
haskell-ем никто не пользуется
Kakadu
Что за дешевый троллинг?
Dmitry
Вообще, надо PLT хотя бы до нормального уровня довести, а уже потом языки придумывать
Dmitry
Проблему останова, в конце концов, решить
Евгений (Владимирович)
a66ath
Чет у меня не работает hie
a66ath
Got error while processing diagnostics: /home/user/.stack/snapshots/x86_64-linux/lts-8.12/8.0.2/pkgdb/package.cache: GHC.PackageDb.readPackageDb: inappropriate type (not enough bytes)
A64m
https://github.com/ghc/ghc/commit/5d5307f943d7581d7013ffe20af22233273fba06
Dmitry
Чет у меня не работает hie
Я по этому руководству: https://gist.github.com/drchaos/73c3abc39f598ee925f63862a0120b53
Kirill
https://github.com/ghc/ghc/commit/5d5307f943d7581d7013ffe20af22233273fba06
Гугл движет хаскель вперёд?
a66ath
Кажись я понял
a66ath
Теперь совсем не собирается
Anonymous
@rusiboonja будет жить. Поприветствуем!
a66ath
Я опять все поломал
a66ath
😁
A64m
Гугл движет хаскель вперёд?
это-то еще не GSoC, то, что в рамках GSoC делалось, т.е. Int{16,32} и Word{16,32} в других дифах
A64m
> One of my sources of blogging material is to browse /r/programming. If I see somebody say something that I think is incorrect it's usually good material for a blog post там же в каждом комментарии кто-то не прав
Kirill
Я про Михала
Kirill
Он же синьор-помидор в Гугле
A64m
а, он тогда в гугле работал?
Kirill
он 5+ лет в гугле работает
Alexander
блин нужен был snakecase конвертатор, ну написал за быстро
Alexander
решил проверить может в проекте был уже где
Alexander
оказалось был, стал искать из какой либы, тут же нашлись 2 штуки и а он из третьей, которая с ходу не нашлась
Alexander
итого на каждый чих миллион кривых реализаций
Alexander
уруру!
Cheese
свою-то выкинул после этого?
Alexander
вот думаю
Alexander
точнее выкинул, но лучше бы выкинул из левой либы
Yura
такой вопрос - есть тип(newtype). Либа не экспортирует конструктор и я могу сделать Serialise но не могу Deserialise. newtype Foo = Foo BytestringЕсть ли в Haskell dirty hack скастить ByteString в Foo?
Alexander
unsafeCoerce
Alexander
ещё у TH есть возможность доступа к неэкспортированному