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