let remove_index (index : int) (l : 'a list) : 'a list =
let rec aux index l res =
match l with [] -> List.rev res
|(x::ls) -> if (index=0)
then (List.rev res)@ls
else aux (index-1) ls (x::res);
in
aux index l []