t() :: %Errx{file: term(), func: term(), reason: term()}
match({:error, any()} | t(), {:error, any()} | t()) :: boolean()
wrap({:error, any()} | t()) :: t()