covenant: Standalone IR for Cardano scripts.

[ apache, covenant, library ] [ Propose Tags ] [ Report a vulnerability ]

A library describing a call-by-push-value, Turner-total IR. Includes the ability to build up the IR programmatically.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 1.0.0, 1.1.0
Change log CHANGELOG.md
Dependencies acc (==0.2.0.3), base (>=4.19.0.0 && <5), bimap (==0.5.0), bytestring (>=0.12.1.0 && <0.13), containers (>=0.6.8 && <0.8), enummapset (==0.7.3.0), mtl (>=2.3.1 && <3), nonempty-vector (==0.2.4), optics-core (==0.4.1.1), optics-extra (==0.4.2.1), optics-th (==0.4.1), prettyprinter (==1.7.1), QuickCheck (==2.15.0.1), quickcheck-instances (==0.3.32), quickcheck-transformer (==0.3.1.2), tasty-hunit (==0.10.2), text (>=2.1.1 && <2.2), transformers (>=0.6.1.0 && <0.7.0.0), vector (==0.13.2.0) [details]
Tested with ghc ==9.8.4 || ==9.10.2 || ==9.12.2
License Apache-2.0
Copyright (C) MLabs 2024-2025
Author Koz Ross, Sean Hunter
Maintainer koz@mlabs.city, sean@mlabs.city
Category Covenant
Home page https://github.com/mlabs-haskell/covenant
Bug tracker https://github.com/mlabs-haskell/covenant/issues
Uploaded by koz_ross at 2025-08-27T01:04:53Z
Distributions
Downloads 10 total (10 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2025-08-27 [all 1 reports]

Readme for covenant-1.1.0

[back to package description]

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.

References