from typing import Sequence
from typing import List


def list_insert_list(l:Sequence, to_insert:Sequence, index:int) -> List:
    """ Insert `to_insert` into a shallow copy of `l` at position `index`.
    
    This function is adapted from: http://stackoverflow.com/questions/7376019/
    
    Parameters
    ----------
    l : typing.Sequence
        An iterable 
    
    to_insert : typing.Sequence
        The items to insert
        
    index : int
        The location to begin the insertion
        
    Returns
    -------
    updated_l : typing.List
        A list with `to_insert` inserted into `l` at position `index`
    """

    ret = list(l)
    ret[index:index] = list(to_insert)
    return ret