def reinterpret(source, vocab=None):
    """Reinterpret *source* Semantic Pointer as part of vocabulary *vocab*.

    The *vocab* parameter can be set to *None* to clear the associated
    vocabulary and allow the *source* to be interpreted as part of the
    vocabulary of any Semantic Pointer it is combined with.
    """
    if hasattr(source, 'reinterpret'):
        return source.reinterpret(vocab)
    else:
        raise TypeError("bad operand type for 'reinterpret'")
