/* VISIBLE : Make normally hidden system predicates visible again Lawrence Updated: 16 January 82 */ % ALL predicates whose names start with a dollar sign % are made untracable (original state). invisible :- ( current_atom(A), name(A,[36|_]), $current_functor(A,Arity,256,0), functor(Pred,A,Arity), $flags(Pred,Flags,Flags\/32), fail ; true ). % ALL predicates whose names start with a dollar sign % are made tracable again. visible :- ( current_atom(A), name(A,[36|_]), $current_functor(A,Arity,256,0), functor(Pred,A,Arity), $flags(Pred,Flags,Flags/\2'10011111), fail ; true ). % Unlock all the system predicates unlock :- ( current_atom(A), $current_functor(A,Arity,128,128), functor(Pred,A,Arity), $flags(Pred,Flags,Flags/\2'01111111), asserta(unlocked_system_predicate(Pred)), fail ; true ). % Lock the system predicates back up again lock :- ( retract(unlocked_system_predicate(Pred)), $flags(Pred,Flags,Flags\/128), fail ; true ).