Added
-
Two new modules for efficient arithmetic operations in a constrained field:
-
New module wrapping BLS12-381 pairing features:
-
aiken/collection/dict.{get_or_else}: to lookup a value from a dict, with a fallback. -
aiken/collection/list.{foldl2}: to left-fold over lists while accumulating two separate results. This is reasonably faster than constructing a list of pairs. -
aiken/collection/list.{foldr2}: to right-fold over lists while accumulating two separate results. This is reasonably faster than constructing a list of pairs. -
aiken/collection/list.{find_map}: to lookup and transform an element from a list in one go. -
aiken/interval.{to_string}: to obtain a human-readable representations of intervals. -
aiken/interval.{includes}: to test whether an interval is included in another. -
Four new functions to conveniently inspect assets in
Value:
Changed
-
⚠️ BREAKING-CHANGE⚠️ aiken/collection/dict.{insert_with};aiken/collection/dict.{union_with}; andcardano/assets.{flatten_with}
have a reworked API using two callbacks instead of a single callback returning
Option. These gives them better performances, alongside a few other functions using them internally. To ease the construction of the callbacks, new modules with callback strategies have been created: -
⚠️ BREAKING-CHANGE⚠️ aiken/interval.{Interval}no longer takes a generic parameter and now defaults toIntinternally. -
⚠️ BREAKING-CHANGE⚠️ aiken/interval.{Interval}no longer takes a generic parameter and now defaults toIntinternally. The implementation was fully revised and re-tested, as edge-cases and optimisation paths were found during development. -
aiken/collection/list.{at}: Now short-circuit on negative indexes.
Acknowledgement
Our fearless contributors who help keeping the standard library well documented and tested: @MicroProofs, @KtorZ, @golddydev, @waalge, @micahkendall, @logicalmechanism, @ljttl3q04t, @GeorgeFlerovsky, @perturbing