Size: a a a

2021 May 17

JS

Jerzy Syrowiecki in Haskell
переименовать его в _
источник

VD

Velvet Darkness in Haskell
Так и сделал пока. Получается его никак нельзя выпихнуть куда-нибудь на type level?
источник

к

кана in Haskell
если он там _ и компиляется, то точно можно убрать
источник

JS

Jerzy Syrowiecki in Haskell
теоретически можно, для этого есть AllowAmbiguousTypes
источник

JS

Jerzy Syrowiecki in Haskell
выложите весь проект, я (или кто-нибудь) попробует
источник

к

кана in Haskell
у меня это не компиляется бтв, с ошибкой

Couldn't match expected type ‘GHC.Natural.Natural’
             with actual type ‘Integer’

на этой строке
shl (knownNat @width) extendedVal $ natVal (Proxy @ix) * 8
источник

к

кана in Haskell
но если добавить туда fromIntegral, то все норм, достаточно просто AllowAmbiguousTypes включить
источник

к

кана in Haskell
и использовать функцию нужно будет через тайп-ап
источник

VD

Velvet Darkness in Haskell
natVal надо из GHC.TypeNats, чтобы возвращало Natural. natVal из TypeLits возвращает Integer
источник

VD

Velvet Darkness in Haskell
Ага, сработало с AllowAmbiguousTypes. Никогда им до этого не пользовался, есть подводные камни какие-то?
источник

к

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

к

кана in Haskell
но это слишком минорная и редкая вещь я считаю, а так ну мастхев с тайпаппом имхо
источник

VD

Velvet Darkness in Haskell
Понял. Спасибо.
источник

IK

Ilya Kos in Haskell
Нет
источник

J

John Roe in Haskell
Ясно.
источник

DM

Dmitriy Mozhevitin in Haskell
Добрый день
Подскажите, могу ли я как-то за бесплатно получить instance Alternative (Either MyError) ?
На данный момент при использовании Either MyError как альтернативы ругается на No instance for (transformers-0.5.6.2:Control.Monad.Trans.Error.Error MyError)

Зашел в Control.Monad.Trans.Error.Error на hackage, написано что он deprecated и нужно юзать Control.Monad.Trans.Except
там действительно увидел (Functor m, Monad m, Monoid e) => Alternative (ExceptT e m) , но это про ExceptT а не про Either , и насколько я знаю Either не реализован как ExceptT Identity в отличие от того же Reader
источник

к

кана in Haskell
потому что все наоборот, ExceptT реализован через Either
источник

DM

Dmitriy Mozhevitin in Haskell
Да, это понимаю)
источник

к

кана in Haskell
и Except = Either в этом случае
источник

[

[BRM]White Rabbit in Haskell
Мне вроде бы даже ide сказала, что Monad.Error deprecated
источник