let rec map_bounds = function
  ls -> if is_empty_list (ls)
          then empty_list ()    (* ----- ls : type error ----- *)
          else let
                 s = head (ls)
               in
                 cons_list ((lower_bound (s), upper_bound (s)), map_bounds (tail (ls)))