Result can be 3 valued:
Failure in a ready result is always a user failure, and never a syscall failure, as opposed to onCancel.
result type