Program a function outline-copy which makes a deep copy of a list structure.
Non-list data in the list should all be translated to a symbol, such as '-.
You should be able to handle both proper lists and improper lists.
As an example:
(outline-copy '((a b c) (d e . f) (h i))) =>
((- - -) (- - . -) (- -))