Add more tests for instructions working with ADTs
Clarification and motivation
We have some custom instructions which deal with ADTs in Lorentz.ADT
and Morley.Michelson.Typed.Haskell.Instr.*
They have complex types and usage examples, but few tests for them (e.g. Test.Lorentz.Product
)
However, we don't test whether they are implemented correctly (essentially we only test it for type-level logic).
Most of the complexity happens at type level, but we should provide a larger coverage.
We need to add some simple tests and there are three goals:
- Provide examples of using these instructions (their types are very complex, would be good to see concrete types).
- Test that type-level logic corresponds to our expectations.
- Actually test their logic which is quite simple but we still can make mistakes there.
Note: this is related to (and mostly an adapted version of) #657 (closed) and !1018 (merged) could probably be taken as an example of what to do.
Acceptance criteria
- Figure out which Lorentz and Morley ADT instructions are complex enough to require dedicated tests (those with complex types).
- Write tests for them.
Edited by Pinto Pasquale