The docstring for ESynch mentions that most exceptions should inherit from it. A look at the exception hierarchy shows otherwise. Is this intended? Should the docstring be changed or the rest of exceptions reparented?
With regards to reparenting, it seems like EInvalidObjectAssignment and EInvalidObjectConversion could inherit from EInvalidValue given its docstring.
And not a direct exception, but close to it in source code, TResult seems like an oddball type duplicating the bool type. It seems like it is only used by the compiler. In fact, other modules like sphinx do shadow it. Should this be removed?