Protecting variables



   From: Barton Willis <willisb at unk>
   
   (defun $protect (x)
     (if (atom x)
         (putprop x 'neverset 'assign)
       (merror "Argument to protect must be an atom")))
   
   (defun $unprotect (x)
     (if (atom x) (remprop x 'assign)
       (merror "Argument to unprotect must be an atom")))

Is atom the right predicate here?  In Common Lisp everything except a
cons is an atom.  Wouldn't symbolp be more conservative, rather than
letting putprop or remprop signal a less-specific less-understandable
error?