Initially build to reduce the author's pain point when using erlang tuple style error handling where it has no information of who create the error tuple.