public Type lub(Type t1,Type t2){
  return lub(List.of(t1,t2));
}

public Type lub ( Type t1 , Type t2 ) { return lub ( List . of ( t1 , t2 ) ) ; }
return the least upper bound of pair of types . if the lub does not exist return null .
