Как работает монада ST?

Я понимаю, что монада ST - это что-то вроде младшего брата IO, который, в свою очередь, является государственной монадой сRealWorld магия. Я могу изобразить состояния, и я могу изобразить, что RealWorld каким-то образом помещается в IO, но каждый раз, когда я пишу сигнатуру типаST s из монады ST меня смущает.

Взять, к примеру,ST s (STArray s a b), Как работаетs там работать? Используется ли он просто для создания некоторой искусственной зависимости данных между вычислениями без возможности ссылаться на нее, как на состояния в монаде состояний (из-заforall)?

Я просто выбрасываю идеи и буду очень признателен кому-то более знающему, чем я, чтобы объяснить это мне.

Ответы на вопрос(2)

Ваш ответ на вопрос