Size: a a a

2021 May 08

[

[BRM]White Rabbit in Haskell
потому что в Cheat это указано
источник
2021 May 09

к

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

type X r = Show r => Y r

f :: X r -> X r
это то же самое что
f :: (Show r => X r) -> (Show r => X r)
или
f :: (Show r -> X r) -> (Show r -> X r)
источник

[

[BRM]White Rabbit in Haskell
ага
источник

[

[BRM]White Rabbit in Haskell
так
источник

к

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

к

кана in Haskell
а для r' у нас нет инстансов, они требуются
источник

к

кана in Haskell
давай вот вместо констрейтов напишем иначе

f :: (Int -> String) -> (Bool -> String)

тут Int это не аргумент функции f, это требование
источник

[

[BRM]White Rabbit in Haskell
разве там не делает
f :: (Show r' -> X r') -> (Show r -> X r)
?
источник

к

кана in Haskell
то есть чтобы заюзать строку из аргумента, нам нужно какое-то число
источник

к

кана in Haskell
да, то есть чтобы получить X r', тебе нужно предоставить Show r'
источник

к

кана in Haskell
а у тебя нет Show r', у тебя есть только Show r
источник

[

[BRM]White Rabbit in Haskell
а почему оно не предоставляет при условии, что у меня r' стоит в тайпалиасе нужном?
источник

к

кана in Haskell
ну давай еще раз

f :: (Int -> String) -> (Bool -> String)
f x b = ...
источник

к

кана in Haskell
как тут получить String из x, не имея значения Int?
источник

[

[BRM]White Rabbit in Haskell
никак
источник

к

кана in Haskell
ну вот, поэтому и у тебя никак. Show r' у тебя это не констрейнт на функцию f, это констрейнт на аргумент первый
источник

к

кана in Haskell
то есть тебе нужно этот констрейнт зарезолвить, предоставить Show r'
источник

к

кана in Haskell
а ты ничего не знаешь про r', у тебя есть инстансы только для r
источник

ЗП

Зигохистоморфный Пре... in Haskell
r' ~ r ? но тогда это бессмысленно вроде
источник

[

[BRM]White Rabbit in Haskell
а почему они только для r-то? Если у меня принимается (Cheat r' b)
источник