Проверить идентичность IORef? - PullRequest
4 голосов
/ 05 мая 2020

В Haskell, есть ли способ проверить, идентичны ли два IORef? Я ищу что-то вроде этого:

IORef a -> IORef a -> IO Bool

Это было бы полезно, если вы, например, хотите визуализировать график, сделанный из IORef. Я не думаю, что это нарушит ссылочную прозрачность, потому что IORefs имеют значимую идентичность (и в любом случае результат может быть в IO). И я предполагаю, что было бы несложно реализовать это эффективно, как сравнение указателей.

Это где-то есть? А если нет, то почему?

(Edit: я только что нашел System.Mem.StableName из другой вопрос SO , который выглядит полезным.)

1 Ответ

11 голосов
/ 05 мая 2020

Не зацикливайся на этом. У вас есть instance Eq (IORef a), поэтому вы можете просто использовать ==, и результат даже не будет в IO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...