2017-02-04 35 views

ответ

2

Будучи экземпляром MonadReader позволяет использовать "читатель операции" (local, ask, asks), но runReader явно для запуска типа Reader.

Так, например, вы можете сделать это из-за monadReaderFun:

readerFunction :: Int -> Int 
readerFunction = do 
    x <- ask 
    pure (x + 2) 

Но нет никакой необходимости «запустить» его, как вы делаете с Reader или ReaderT набранного значения.