typed-arrow avoids any kinds of runtime side effects: cost, errors, etc.