Error defined here differs from SysError: it only captures true CKB
errors. It is not considered an error when a partial loading function
reads part, but not all of the data.
This is the inverse of DefaultSyscallImpls: given a general syscall function,
we map the syscalls to a SyscallImpls trait impl. This way we are taking care
of the unsafe part for you, where in Rust you can just deal with SyscallImpls.