Make generator 'overrider-id' be preferred to
    'overridee-id'. If, when searching for generators
    that could produce a target of certain type,
    both those generators are amoung viable generators,
    the overridden generator is immediately discarded.

    The overridden generators are discarded immediately
    after computing the list of viable generators, before
    running any of them.

def override (overrider_id, overridee_id):
    """Make generator 'overrider-id' be preferred to
    'overridee-id'. If, when searching for generators
    that could produce a target of certain type,
    both those generators are amoung viable generators,
    the overridden generator is immediately discarded.

    The overridden generators are discarded immediately
    after computing the list of viable generators, before
    running any of them."""
    assert isinstance(overrider_id, basestring)
    assert isinstance(overridee_id, basestring)

    __overrides.setdefault(overrider_id, []).append(overridee_id)