t() :: %Edantic.CastError{ data: term(), message: term(), previous_error: term(), type: term() }
format(t()) :: String.t()
format_type(t()) :: String.t()
new(String.t(), term(), term(), t() | nil) :: t()