from typing import Iterable
from typing import List
from typing import OrderedDict


def flatten_unique(l: Iterable) -> List:
    """ Return a list of UNIQUE non-list items in l """
    rval = OrderedDict()
    for e in l:
        if not isinstance(e, str) and isinstance(e, Iterable):
            for ev in flatten_unique(e):
                rval[ev] = None
        else:
            rval[e] = None
    return list(rval.keys())