Assigning a typed nil to the error interface gives a non-nil value. That breaks the common pattern `if nil != nil { ... }`. To avoid this problem, NewError should return an interface.