This is sorely needed and the absence of this is making containers relying on order of values to be barely useful (one needs to pass around orphan instance implementations).
TODO:
[ ] Research: Prelude opaque types ordering among supported languages (for example: How is Ord Text in Haskell vs Rust vs Typescript vs Purescript, does the order match? if "b" > "a" in one language, it has to be the same in all others). How do we proceed if for example Rust and Haskell implement different ordering for Text?
[ ] Research: Plutus opaque types ordering.
[ ] Research: Specify how ordering is derived for transparent types. How does that impact Plutarc/PlutusTx backends? Can we rely on the ordering of the underlying PlutusData value representations?
[ ] Design and implement tests
[ ] I imagine an lb.json file that contains a List a where a is some orderable. The golden file would contain elements in correct order and the testsuite would read golden >> permutate >> order >> compare.
[ ] Otherwise, internal tests for each backend would also do property testing on a > b && b > c => a > c etc.
This is sorely needed and the absence of this is making containers relying on order of values to be barely useful (one needs to pass around orphan instance implementations).
TODO:
lb.json
file that contains aList a
wherea
is some orderable. The golden file would contain elements in correct order and the testsuite wouldread golden >> permutate >> order >> compare
.a > b && b > c => a > c
etc.