code: def clone (self, new_id, new_toolset_properties):
          
          assert isinstance(new_id, basestring)
          assert is_iterable_typed(new_toolset_properties, basestring)
          return self.__class__ (new_id,
                                 self.composing_,
                                 self.source_types_,
                                 self.target_types_and_names_,
                                 # Note: this does not remove any subfeatures of <toolset>
                                 # which might cause problems
                                 property.change (self.requirements_, '<toolset>') + new_toolset_properties)
docs: Returns another generator which differers from $(self) in
                - id
                - value to <toolset> feature in properties