impure_safe and safe decorators have the same purpose, encapsulate the returning value in a container that indicates success or failure they just work for different types, IOResult and Result, respectively!
It'd be great if both decorators have the same "shape" to be used.