/**
  * Try to make a new compound from a set of term. Called by the public make methods.
  *
  * @param set a set of Term as compoments
  * @param memory Reference to the memory
  * @return the Term generated from the arguments
  */
 public static Term make(TreeSet<Term> set, Memory memory) {
   if (set.size() == 1) {
     return set.first();
   } // special case: single component
   Term[] argument = set.toArray(new Term[set.size()]);
   CharSequence name = makeCompoundName(NativeOperator.INTERSECTION_EXT, argument);
   Term t = memory.conceptTerm(name);
   return (t != null) ? t : new IntersectionExt(name, argument);
 }