formal-ledger-specifications
formal-ledger-specifications copied to clipboard
Implement `Convertible` instances for ledger types
We need to translate all ledger types to Haskell. The types for which we'll need Convertible
instances are all those that appear in Computational
instances. The root types of these are ChainState
and Block
, but there are also some others whose values are only temporarily constructed. In the end, we want to be able to write functions such as utxo-step
(including the COMPILE
pragma) for every Computational
instance.
At the moment, it's fine to keep our own versions of the Haskell Ledger types and ask the Ledger team to translate to them once they want to use our code.
Here's a list of what needs to be covered:
- [x] GOV
- [ ] LEDGER
- [ ] RATIFY and RATIFY'
- [ ] ENACT
- [ ] CERTS, CERT, CERTBASE
- [ ] POOL
- [ ] GOVCERT
- [ ] DELEG
- [ ] NEWEPOCH
- [ ] CHAIN