code: static <T> Enumeration<T> compose(Enumeration<T> e1, Enumeration<T> e2) {
          // return the composite of e1 and e2, or whichever is non-empty 
          return isEmpty(e1) ? e2
                          : isEmpty(e2) ? e1
                                          : new CompositeEnumeration<T>(e1).add(e2);
      }
docs: Compose two enumerations into one.
  
  @param e1 an enumeration
  @param e2 another enumeration
  @return an enumeration containing every element from <code>e1</code> and <code>e2</code>