# -*- coding: utf-8 -*-
"""
Created on Sat Jan 27 22:07:00 2024

@author: yqlim
"""
from collections.abc import Iterable
from typing import List

def remove_duplicate_with_order(seq: Iterable) -> List:
    """
    Remove duplicate from Iterable while keeping order.

    Parameters
    ----------
    seq : Iterable

    Return
    ------
    list
    """
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]