Как работает монада ST?
Я понимаю, что монада ST - это что-то вроде младшего брата IO, который, в свою очередь, является государственной монадой сRealWorld
магия. Я могу изобразить состояния, и я могу изобразить, что RealWorld каким-то образом помещается в IO, но каждый раз, когда я пишу сигнатуру типаST
s
из монады ST меня смущает.
Взять, к примеру,ST s (STArray s a b)
, Как работаетs
там работать? Используется ли он просто для создания некоторой искусственной зависимости данных между вычислениями без возможности ссылаться на нее, как на состояния в монаде состояний (из-заforall
)?
Я просто выбрасываю идеи и буду очень признателен кому-то более знающему, чем я, чтобы объяснить это мне.