covenant-1.3.0: CHANGELOG.md
# Changelog for `covenant`
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## UNRELEASED
* Expose unsafe constructors `UnsafeMkId` and `UnsafeMkArg` for `Id` and `Arg`
respectively from `Covenant.Test`
* Add read-only synonyms `Id` and `Arg` for the two data types with the same
name in `Covenant.ASG`
* Modify `CovenantTypeError` for new catamorphism related errors
* Rewrite `cata` to take explicit handlers for the base functor (similar to
`match`)
## 1.3.0 -- 2025-10-07
* Zipper for the ASG in `Covenant.Zipper`
* `topLevelId` function in `Covenant.ASG`
* Changed type name representation of base functors from a `_F` suffix to a `#` prefix. For example, the base functor for `List` is now named `#List` instead of `List_F`.
* Changed base functor lookup machinery / representation to not require raw TyName text manipulation
* Provided helper function for safe construction of base functor names from the parent TyName
* `ASG` now exposes a read-only pattern synonym
* `ValNodeInfo`'s pattern for `App` now exposes type applications as well
* JSON serialization and deserialization support for `ASG`s with type
declarations
* Removed `CaseData` and `CaseList`, as Plutus Core no longer supports them
## 1.2.0 -- 2025-08-27
* Helper function for safely retrieving an in-scope type variable when constructing the ASG
* Removed Return nodes, associated pattern synonyms, and the `ret` ASGBuilder function
* Reworked the renamer to be context sensitive
* Added new error types for un-renaming
* Modified ASG helper functions and updated tests to conform with renamer rework
* Added support for introduction forms (ValNode stuff, ASG helper function, tests)
* Added support for catamorphism elimination forms
* Added support for pattern matching elimination form
## 1.1.0 -- 2025-07-11
### Added
* Representation of datatype declarations and datatype types
* Generators for various flavors of data declaration and value type
* A "kind checker" which serves as a basic sanity check on datatype declarations ingested by the pipeline
* Base functor transformation machinery
* Tests for the base functor transformation
* Misc internal helpers to support the above functionality
* Ledger type definitions for use in the ASG
* Support for primops over data types
* Support for arity-six primops in the ASG
Initial version
## 1.0.0 -- 2025-05-07