Показать для типов ввода-вывода

У меня есть тип данных, который содержит IORef в качестве важного элемента. Это означает, что не существует чистого способа сделать его членом класса типа show . Это не так уж и плохо, поскольку у меня есть функция print в монаде ввода-вывода для этого типа. Но в GHCi раздражает то, что каждый раз, когда я возвращаю одну из этих вещей, я получаю сообщение об ошибке, что ее нельзя показать.

Есть ли способ заставить GHCi, который в любом случае работает в монаде ввода-вывода, использовать действие ввода-вывода для отображения результата? Если нет, будут ли какие-либо негативные последствия для записи show a = unsafePerformIO $ print a ?

7
задан Robin Green 20 May 2018 в 13:34
поделиться