code: public static Tuple of( Collection<VarBindingDef> tupleBindings)
      {
      Tuple tuple = new Tuple();
      
      boolean bindingsCompatible;
      Iterator<VarBindingDef> bindings;
      VarBindingDef nextBinding;
      for( bindings = tupleBindings.iterator(),
             bindingsCompatible = true; 
  
           bindings.hasNext()
             && (bindingsCompatible = isBindingCompatible( tuple, (nextBinding = bindings.next())));
  
           tuple.add( nextBinding));
      
      return
        bindingsCompatible && tuple.isCompatible()
        ? tuple
        : null;
      }
docs: Returns null if all of the given bindings cannot be included in compatible Tuple.
  Otherwise, returns a new compatible Tuple containing all of the given bindings.