... and generic code should support each specific usage, which is why library code should not cause the process to exit; it should let client code decide when to do that.