AA
Size: a a a
AA
YS
S
YS
YS
AA
DG
AA
И
greeting :: PersonReader StringПри этом до этого мы делаем инстанс:
greeting = do
person <- ask
pure $ show person
... we call ask in a context where type inference tells us that the value must be
ask :: PersonReader a. However, nothing tells us what that a must be. ...
instance MonadReader Person PersonReader whereПочему этого недостаточно для вывода типа и понимания того что
ask = PersonReader $ \env -> env
a должен быть равен PersonИ
MonadReader указано что у функции ask должен быть тип ask :: m envinstance MonadReader Person PersonReader where у нас разве не должен получится конкретный тип ask вида PersonReader Person?И
И
AP
AP
AP
instance MonadReader Person PersonReader where
ask = PersonReader $ \env -> env
тут всего лишь сказано, что для этой конкретной пары — когда оба типа известны — инстанс будет такойИ
AP
| m -> env" компилятор не может выбрать env, исходя только лишь из mAP
И