@staticmethod
def replace_element(old_element, new_element_base_form):
    """Return a WordElement which base_form is the argument
        new_element_base_form. This element inherits its category and
        features from the argument old_element.

        Note: the old_element features do not override the new element
        ones, they can only complete them.

        """
    features = old_element.features.copy()
    element = old_element.lexicon.first(new_element_base_form, category=
        old_element.category)
    for feature, value in features.items():
        if feature not in element.features:
            element.features[feature] = value
    return element
