Seems a bit redundant to have both `ErrorKind.Divergent` and the type `DivergentImplicitTypeError`. Maybe we can do with one of them, and have a `collect` method for errors.