@internal JObjType<dynamic> lowestCommonSuperType(List<JObjType<dynamic>> types) { return types.reduce(_lowestCommonAncestor); }