This simplifies the public API to the library. For clients, it does not matter which exact component was detecting an error. And we will soon have more components; there would be little point in declaring CompilerError, TableBuilderError, and so forth.