I merge the external type system here