Для типа экзистенциальных данных, например:
data Foo = forall a . (Typeable a, Binary a) => Foo a
Я хотел бы написать instance Binary Foo
. Я могу написать сериализацию (сериализуйте TypeRep
, а затем сериализуйте значение), но я не могу понять, как написать десериализацию. Основная проблема заключается в том, что при a TypeRep
вам нужно отобразить обратно в словарь типов для этого типа - и я не знаю, можно ли это сделать.
Этот вопрос задан ранее в списке рассылки haskell http://www.haskell.org/pipermail/haskell/2006-September/018522.html, но ответов не было.