let remove_double (l : 'a list) : 'a list =
let rec aux l res =
match l with [] -> List.rev res
|(x::ls) -> if (List.mem x res)
then aux ls res
else aux ls (x::res);
in
aux l[]