For each operation, we have to spell out how exactly it works, including:
- What arguments the primop takes
- What happens for any arguments that aren't valid (including what the error messages must include)
- What result we should expect from valid arguments
This can be used as an example.