This is not avoiding a circular dependency. This is a ciricular dependency and would ideally not exist. Please consider refactoring code in the manager used by types so that they are a separate subsystem used by both, so there is no circular dependency anymore.