FWIW, I think it would be a bad idea to have two different classes in the same module called `Manager`, with the definition of the second overriding the first. Separate names is much clearer as to what's going on. If we don't document `BaseManager` I see no significant risk of confusion; Django's codebase is full of undocumented `BaseFoo` classes that are an implementation detail, and I have never seen user confusion as a result.