Как узнать, что внешне чистый интерфейс Haskell скрывает небезопасные операции?

Недавно я читал о unsafePerformIOи хотел бы кое-что спросить у вас. . Меня устраивает тот факт, что настоящий язык должен уметь взаимодействовать с внешней средой, так что unsafePerformIOнесколько оправдано.

Однако, насколько мне известно, я не знаю никакого быстрого способа узнать, действительно ли чистый (судя по типам) интерфейс/библиотека является чистым без проверки кода в поисках вызовов unsafePerformIO(в документации об этом может не упоминаться). Я знаю, что его следует использовать только тогда, когда вы уверены, что ссылочная прозрачность гарантирована, но тем не менее я хотел бы знать об этом.

7
задан Riccardo T. 4 April 2012 в 22:36
поделиться