from typing import Union
from typing import List


def negatives(obj: Union[int, List]) -> List[int]:
    """Return a list of the negative numbers in obj.

    >>> negatives([1, [2, 3], 4])
    []
    >>> negatives([1, [-2, 3], -4])
    [-2, -4]
    """
    # v1
    if isinstance(obj, int):
        return [obj] if obj < 0 else []
    else:
        return sum([negatives(i) for i in obj], [])

    # v2
    # if isinstance(obj, int):
    #     if obj < 0:
    #         return [obj]
    #     else:
    #         return []
    # else:
    #     return sum([negatives(i) for i in obj], [])

    # v3
    # negs = []
    # if isinstance(obj, int):
    #     negs.append(obj)
    # else:
    #     # obj is a list.
    #     for item in obj:
    #         # item is either an int or another list.
    #         negs += negatives(item)
    # return negs

    # v4
    # if isinstance(obj, int):
    #     if obj < 0:
    #         return [obj]
    #     else:
    #         return []
    # else:
    #     answer = []
    #     for lst_i in obj:
    #         # lst_i might be a nested list
    #         answer.extend(negatives(lst_i))
    #     return answer