Returns another generator which differers from $(self) in
              - id
              - value to <toolset> feature in properties

def clone (self, new_id, new_toolset_properties):
        """ Returns another generator which differers from $(self) in
              - id
              - value to <toolset> feature in 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)