ConsenSysMesh / ConsenSysMesh/Fae

Hereditary `Exportable`

Open
#43 0 comments 0 reactions 1 assignee Claimed by @ryanreich View on GitHub
bug
Dominant language
Haskell
Stars
6
Forks
2
PR merge metrics
No merged PRs in 30d

Description

The `Exportable` class is not hereditary in the sense that, if you have a product type whose fields are `Exportable` but _not_ known to be `Generic`, you can't derive an instance of `Exportable` for the whole product. The `EGeneric` class _is_ hereditary in this way, but not everything actually is `EGeneric` because not everything is `Generic`; notable offenders include containers like `Map`. We need to essentially reorganize the entire circle of escrow types, the `Exportable` class, and its supporting `EGeneric`, `EGeneric1`, and `ESerializable` classes, so that it's possible to have our cake (the current structuring of `EGeneric`, which uses `Serialize`'s generic encoder and decoder rather than manually encoding `Rep`s) and eat it too.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.