with import ; let isFirst = list: x: end: if end == 0 then true else if elemAt list (end - 1) == x then false else isFirst list x (end - 1); uniq' = list: concatMap (i: let value = elemAt list i; in optional (isFirst list value i) value) (range 0 (length list - 1)); in uniq' [ 3 3 4 5 3 4 1 ]