let rec map_width = function
  ls -> if is_empty_list (ls)
          then empty_list ()    (* ----- ls : type error ----- *)
          else cons_list (width (head (ls)), map_width (tail (ls)))