let rec less_than = function
  i     (* ----- i >= 0 ----- *)
  -> if i = 0
       then empty_list ()
       else cons_list (i - 1, less_than (i - 1))