public Type lub(List<Type> ts){
  return lub(ts.toArray(new Type[ts.length()]));
}

public Type lub ( List < Type > ts ) { return lub ( ts . toArray ( new Type [ ts . length ( ) ] ) ) ; }
return the least upper bound of list of types . if the lub does not exist return null .
