def binary_search(l:list, item):
    """Perform binary search on a homogenous list for an item and return it's 
    location.
    Args:
        l (list): the homogenous list to be searched
        item (): the item to look for in the list
    Returns:
        int: index location of item in list or `None`
    """
    low = 0
    high = len(l) - 1
    # Cut `l` in half until `item` is found
    while low <= high:
        mid = (low + high)
        guess = l[mid]
        if guess == item:
            # Item was found
            return mid
        if guess > item:
            # Guess is too high
            high = mid - 1
        else:
            # Guess is too low
            low = mid + 1
    return None