Size: a a a

2021 April 16

AP

Aleksei (astynax) Pi... in Haskell
Либо специфицируйте show, либо протаскивайте переменную типа в конструктор вашего типа
источник

S

Sooqa in Haskell
А как тогда аннотировать этот компонент ?
источник

S

Sooqa in Haskell
А где тут полиморфизм?
источник

AP

Aleksei (astynax) Pi... in Haskell
Справа, а не слева
источник

AP

Aleksei (astynax) Pi... in Haskell
Для полиморфизма нужна переменная в типе
источник

S

Sooqa in Haskell
Если справа, то тип потеряется
источник

AP

Aleksei (astynax) Pi... in Haskell
Вводите переменные слева, используйте в справа
источник

AP

Aleksei (astynax) Pi... in Haskell
data T a b c -> T a (b -> c)
источник

S

Sooqa in Haskell
Ок, пусть будет три штуки вместо двух
источник

AP

Aleksei (astynax) Pi... in Haskell
В исходном
> data M a (b :: a -> c) = MkM a b
откуда-то нужно взять c после переноса сигнатуры в правую часть. Тут либо слева упомянуть, либо forall сделать.

Если сделать так
data M a where
 MkM :: forall c. a -> (a -> c) -> M a
то с c будут проблемы — информация об этом типе стирается и с результатом применения сохраняемой в MkM функции мало что сделать можно будет
источник

L

Lierdakil in Haskell
Что-то похожее возможно (с ConstraintKinds), но выглядит вполне чудовищно

data HList (ts :: [(Constraint, Type)]) where
 HNil :: HList '[]
 HCons :: (c => t) -> HList ts -> HList ('(c, t):ts)

infixr `HCons`

type NullConstraint = () :: Constraint

tst :: HList '[ '(Show a, a -> String), '(NullConstraint, b -> b)]
tst = show `HCons` id `HCons` HNil

head' :: HList ('(c, t):ts) -> (c => t)
head' (HCons f _) = f

main = do
 print $ head' tst "asd"
 print $ head' tst 123


сигнатура для tst обязательна, тайпчекер сам не справится.
источник

к

кана in Haskell
а можно подробнее? Не очень понял идею
источник

к

кана in Haskell
у функций в списке разные констрейнты? Констрейнты параметризуются в типе списка?
источник

JS

Jerzy Syrowiecki in Haskell
я сейчас долго бился над задачей, писал большой вопрос в чат, но пока писал, понял, как решить. сила сообщества!
источник

B

BARSOOQUE in Haskell
Есть такое
источник

B

BARSOOQUE in Haskell
Переслано от BARSOOQUE
Привет, вопрос в следующем:
Арч. Пытаюсь вкатиться в хаскель. Прожимаю cabal update, но выкидывает libHS.... No such file or directory. Создал ~/.cabal/config и закинул туда конфиг с Арчвики/Haskell. Это ничего не поменяло, но суть проблемы в том, что и на арчвики, и в других гайдах cabal update сказано прожимать до конфига, то есть он и так работать должен, а у меня не работает. Собственно, тупик. Как пофиксить?
источник

B

BARSOOQUE in Haskell
Переслано от BARSOOQUE
cabal: error while loading shared libraries: libHSHTTP-4000.3.16-D...(тут рандомный набор символов)...-ghc8.10.4.so: cannot open shared object file: No such file or directory
источник

B

BARSOOQUE in Haskell
Переслано от BARSOOQUE
sudo pacman -S cabal-install
источник

JS

Jerzy Syrowiecki in Haskell
а на Арче можно устанавливать несколько версий одного пакета?
источник

B

BARSOOQUE in Haskell
Короче, решение оказалось прямолинейней, чем я думал. Надо было всего лишь установить haskell-http из пакмана.
Решение одной проблемы.
Теперь ловлю вот такое:
newParallelJobControl: not a sensible number of jobs: 0
CallStack (from HasCallStack):
 error, called at ./Distribution/Client/JobControl.hs:101:3 in main:Distribution.Client.JobControl
источник