def deduplicate_dicts(l: list) -> list:
    """
    Removes duplicate dicts from a list of dicts, preserving order
    """
    seen = set()
    new_l = []
    for d in l:
        t = tuple(d.items())
        if t not in seen:
            seen.add(t)
            new_l.append(d)
    return new_l