let rec insert = function
  x, lx
  -> if is_empty_list (lx)
       then cons_list (x, empty_list ())     (* ----- cons_list (x, lx) as well ----- *)
       else if x <= head (lx)                (* ----- x < head (lx) as well ----- *)
              then cons_list (x, lx)
              else cons_list (head (lx), insert (x, tail (lx)))