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