In general I think we want to remove this trait. It seems unfortunate to add even *more* implementations of it in the meantime. This may require more overhaul other portions of the compiler (notably the failing macros), so this may not be the best time to refactor this.