As returns the error as an Error.
Is checks if an error is of provided code.
New creates a new error with code and message.
Op either appends operation to current Error or creates a new Error if the provided error is not of type Error and adds the operation to it.