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?