(defun maplist ( f l ) ;; map func(x) on l; x == one atom (cond ((atom l)(f l)) ((and (cdr l)(atom (cdr l)))(cons (maplist f (car l))(f (cdr l)))) (T (mapcar '(lambda(subl)(maplist f subl)) l)) )) ;;HERE IT GOES (defun unprotect(func) (maplist (lambda(x)x) func) )