covenant: Standalone IR for Cardano scripts.

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

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


[Skip to Readme]

Properties

Versions 1.0.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), text (>=2.1.1 && <2.2), transformers (>=0.6.1.0 && <0.7.0.0), vector (==0.13.2.0) [details]
License Apache-2.0
Copyright (C) MLabs 2024
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-05-07T19:58:53Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for covenant-1.0.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