pub fn topological_sort(types: &[TypeDef]) -> Vec<&TypeDef>
Topologically sort types so dependencies come before dependents