code: private Type compoundMin(List<Type> cl) {
          if (cl.isEmpty()) return syms.objectType;
          List<Type> compound = closureMin(cl);
          if (compound.isEmpty())
              return null;
          else if (compound.tail.isEmpty())
              return compound.head;
          else
              return makeIntersectionType(compound);
      }
docs: Return the minimum type of a closure, a compound type if no
  unique minimum exists.