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