def splice_in_seq(new_seq: str, old_seq: str, full_seq: str) -> str:
    """
    Replace old_seq with new_seq in full_seq. full_seq is expected to contain old_seq
    >>> splice_in_seq("CASS", "CASR", "ABCDEFGCASRZZZ")
    'ABCDEFGCASSZZZ'
    >>> splice_in_seq("$$", "CASS", "ABCDEFGCASSYLMZ")
    'ABCDEFG$$YLMZ'
    >>> splice_in_seq("CASSRKDES", "CASSRKDDD", "CASSRKDDD")
    'CASSRKDES'
    """
    # Locate the old sequence in the full sequence
    assert old_seq in full_seq, f"Could not find {old_seq} in {full_seq}"
    assert full_seq.count(old_seq) == 1, "Sequence to be replaced is nonunique"
    old_seq_start_idx = full_seq.index(old_seq)
    old_seq_stop_idx = old_seq_start_idx + len(old_seq)
    assert full_seq[old_seq_start_idx:old_seq_stop_idx] == old_seq

    # replace old seq with new seq
    retval = full_seq[:old_seq_start_idx] + new_seq + full_seq[old_seq_stop_idx:]
    return retval