public String getName() {
   return first.getName() + "(" + second.getName() + ")";
 }
 @SuppressWarnings("unchecked")
 @Override
 public Relation<D> doApply(Relation<D> input) {
   return second.apply(first.apply(input));
 }