Я читаю учебники Monad, и сейчас я работаю над http://www.muitovar.com/monad/moncow.xhtml, но я столкнулся с проблемой с состоянием Monad или, если быть более точным, с помощью функции доступа runState.
Тип определяется как
newtype State s a = State { runState :: (s -> (a,s)) }
и называется, например,
runState (chncasewst3 'e' 'd' 'f') False
Я не знаю, как прочитать определение для перехода ко второй строке,особенно из-за части "State sa".Если это «State as», я мог бы сделать вывод, что метод доступа был каррирован «так далеко», как «s».
Так что вопрос таков;как прочитать определение типа, чтобы я мог видеть, как вызывать функцию доступа в этой ситуации, и, если возможно, как читать функции доступа как таковые.