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.
This is currently a work-in-progress. Begin with the documentation in
Covenant.ASG
and Covenant.Type
.
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.
Covenant is licensed under Apache 2.0. Please see the LICENSE
file for more
information.