Standalone IR for Cardano scripts.
A library describing a call-by-push-value, Turner-total IR. Includes the ability to build up the IR programmatically.
Covenant
What is this?
Covenant is a standalone IR, designed as a target for front-end DSLs for writing Cardano scripts. It uses call-by-push-value and is Turner-total, which gives it a high degree of analyzability. Furthermore, it uses a fully hash-consed structure.
How do I use this?
This is currently a work-in-progress. Begin with the documentation in Covenant.ASG and Covenant.Type.
What do I need?
Our policy is to support the latest three GHC versions; see the Cabal file's tested-with field to see which exact versions are supported. This is enforced using get-tested in our CI.
We support only Tier 1 platforms. Covenant is developed using the lowest supported version.
License
Covenant is licensed under Apache 2.0. Please see the LICENSE file for more information.