Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
In the `Shelley.Spec.Ledger.API.*` modules, define type classes for the most important functionality consensus. These classes are parametric in the era. Instances should be provided for each era (Shelley, Allegra, Mary, etc.). At the moment, only instances for `ShelleyEra` are provided. These classes list a bunch of super-class constraints that consensus relies on. I have tried to be complete, but there's a good chance I forgot to add a few constraints that are currently already satisfied. Default implementations are provided for each method so that an empty instance declaration should be enough for each class + era combination. The constraints on these instances are what matters, they should be minimal, e.g., just `Crypto crypto` and `DSignable ..`. Note: the super-class constraints of the classes are what consensus needs, *not* what the default implementations of the methods need. If a default implementation needs more constraints, add them to the *default signature*.
- Loading branch information
Showing
6 changed files
with
260 additions
and
142 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.