t() :: %Errx{context: term(), error: term(), file: term(), func: term()}
unwrap(any()) :: any()
wrap(any()) :: {:error, t()}
wrap(any(), any()) :: {:error, t()}