Я возился с HashMap
и пытался использовать Data.Bson.ObjectId
в качестве ключа. Я, конечно, обнаружил, что для этой структуры не существует экземпляра Hashable
. Это нормально, потому что написать такой тривиально. 1
instance Hashable ObjectId where hash (Oid x y) = hash (x,y)
Я ввел эту строку в GHCi, и мне сказали: «Ошибка синтаксического анализа на входе« instance »». На самом деле это имеет смысл, поскольку приглашение GHCi работает так, как если бы строки вводились в блок do в монаде ввода-вывода, и экземпляр не может быть определен в этом контексте.
Тогда мой вопрос: есть ли способ определить новый экземпляр в GHCi?
1 Другой вопрос, почему этот экземпляр не предоставляется библиотекой. Я полагаю, что ответ заключался в том, чтобы ограничить зависимости, за исключением того, что пакет bson уже зависит от всего, что находится под солнцем.