Size: a a a

2020 June 02

AV

Alexander Vershilov in Haskell
тогда если есть (Eq a, Typeable a) => то тогда ты можешь сначала сравнить типы, а потом если совпали воспользоваться словариком Eq
источник

AV

Alexander Vershilov in Haskell
типа data E = forall a .(Eq a, Typeable a) => E a
instance Eq E where
 ea == eb = case ea of
   (E (a::a)) -> case eb of
       (E (b::b)) -> case eqT @a @b of
            Just Refl ->  a == b
            Nothing -> False
источник

AV

Alexander Vershilov in Haskell
что-то такое
источник

AV

Alexander Vershilov in Haskell
писал сразу люда, мог ошибиться
источник

YS

Yan Shkurinskiy in Haskell
Ага, всё равно - большое спасибо!
источник

AV

Alexander Vershilov in Haskell
а вот скопилялось сразу
источник

AV

Alexander Vershilov in Haskell
*Main> (E (1::Int)) == (E (2::Int))
False
*Main> (E (1::Int)) == (E (1::Int))
True
*Main Data.Monoid> (E (1::Int)) == (E (1::Sum Int))
False
источник

AV

Alexander Vershilov in Haskell
С точностью до newtype можно и без Typeable конечно
источник

AV

Alexander Vershilov in Haskell
И с точностью до реализации newtype скорее всего, но это как-то сложнее
источник

AV

Alexander Vershilov in Haskell
Но не надо так (в истории чатика можно найти я на спор так делал (с точностью до newtype))
источник

AV

Alexander Vershilov in Haskell
Никто не хочет поспорить про с точностью до словарика? =)
источник

YS

Yan Shkurinskiy in Haskell
Alexander Vershilov
С точностью до newtype можно и без Typeable конечно
Ну да, у меня просто дататайп, где некоторые конструкторы экзистенциальные, и нужно ему Eq
источник

YS

Yan Shkurinskiy in Haskell
Сработало, спасибо (лучше мне побольше всё же про Typeable почитать)
источник

AV

Alexander Vershilov in Haskell
Alexander Vershilov
типа data E = forall a .(Eq a, Typeable a) => E a
instance Eq E where
 ea == eb = case ea of
   (E (a::a)) -> case eb of
       (E (b::b)) -> case eqT @a @b of
            Just Refl ->  a == b
            Nothing -> False
^ самое разумное если ж действительно надо
источник

LO

Leonid 🦇 Onokhov in Haskell
Alexander Vershilov
Скачай узнаешь
ну это говёный интерфейс для хранилища.
ну через list то точно отдать должно
источник

AV

Alexander Vershilov in Haskell
В общем я написал в саппорт
источник

YS

Yan Shkurinskiy in Haskell
Alexander Vershilov
^ самое разумное если ж действительно надо
Да, так и сделал! Спасибо
источник

AV

Alexander Vershilov in Haskell
Я решил, что сегфолтящийся minio client это достаточноя причина, чтобы их напрячь
источник

AV

Alexander Vershilov in Haskell
Писать, что "моя хаскельная библиотека не работает" же нельзя, понятно, что виноват haskell, и тупые академики, а не сервис
источник

AV

Alexander Vershilov in Haskell
(приношу извинения академикам, это была абсолютно индустриальная библиотека)
источник