result, error = fn(...)
calling this function should yield to the caller two possibilities, somehow: a success value _or_ a failure errorthe important thing is that in both cases, the control flow is visible in the source code as written
result, error = fn(...)
if there was an error, ...
if it was successful, ...
when an expression fails, you want to see the consequence in-linethe success path and the failure path are equally important