1. A method comprising: receiving by a processor of a computing device a call from a first function in a first module, the first module associated with a first type graph and defining a first type-equivalent interface; making a static cross type space function call from the first function in the first module to a second module, the second module associated with a second type graph and defining a second type-equivalent interface, the first type graph and the second type graph are disjoint; allocating by the second module an object of a type defined in the second type graph, the object implementing the second type-equivalent interface, wherein the first type-equivalent interface and the second type-equivalent interface have a same unique identifier; returning the object to the first function, by making a static function call from the second module to the first module; and making an interface call on the object, from the first module using the first type-equivalent interface, wherein the first type-equivalent interface call received by the object executes as if a call were made on the second type-equivalent interface.