Do not ignore exception when `fail_fn` is `None`
Allow user to return yield an error value
Whitespaces