кана
Cheese
Зигохистоморфный
ну ты взял и определил инстанс для A
Зигохистоморфный
а надо без определения инстансов для A
кана
ну тогда вообще не понятно, что ты хочешь
Cheese
Зигохистоморфный
считай это хитрым абстрактным классом
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 не делается инстансов
кана
кана
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
Kirill
a66ath
Кажись я понял
a66ath
Теперь совсем не собирается
Anonymous
@rusiboonja будет жить. Поприветствуем!
a66ath
Я опять все поломал
a66ath
😁
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 есть возможность доступа к неэкспортированному