Могу я добавить объявление экземпляра в GHCi

Я возился с HashMap и пытался использовать Data.Bson.ObjectId в качестве ключа. Я, конечно, обнаружил, что для этой структуры не существует экземпляра Hashable . Это нормально, потому что написать такой тривиально. 1

instance Hashable ObjectId where hash (Oid x y) = hash (x,y)

Я ввел эту строку в GHCi, и мне сказали: «Ошибка синтаксического анализа на входе« instance »». На самом деле это имеет смысл, поскольку приглашение GHCi работает так, как если бы строки вводились в блок do в монаде ввода-вывода, и экземпляр не может быть определен в этом контексте.

Тогда мой вопрос: есть ли способ определить новый экземпляр в GHCi?


1 Другой вопрос, почему этот экземпляр не предоставляется библиотекой. Я полагаю, что ответ заключался в том, чтобы ограничить зависимости, за исключением того, что пакет bson уже зависит от всего, что находится под солнцем.

14
задан Daniel Fischer 16 December 2011 в 20:30
поделиться