let separate_list_at (n:int) (l:'a list) = 
  let rec cut_list_rec (n:int) (deb:'a list) (fin:'a list) = 
    if (n=0) then (List.rev fin,deb)
    else match deb with 
      | []   -> (List.rev fin,[])
      | x::c -> cut_list_rec (n-1) c (x::fin)
  in cut_list_rec n l []