;;; -*- Mode:LISP; Package:SYSTEM-INTERNALS; Base:10 -*-


(DEFUN ENCAPPED-test (&REST .ARGLIST.)
 (ENCAPSULATION-LET
  ((ARGLIST (ENCAPSULATION-LIST* .ARGLIST.)))
  (DECLARE (SPECIAL ARGLIST VALUES))
  (PROG* ((VALUES NIL) (GENSYM-FOO (1+ GENSYM-FOO)) (TRACE-LEVEL (1+ TRACE-LEVEL)))
        (DECLARE (SPECIAL GENSYM-FOO VALUES))
        (COND ((OR INSIDE-TRACE
                   NIL
                   NIL)
               (RETURN (APPLY (FUNCTION GENSYM-FOO) ARGLIST)))
              (T (LET ((INSIDE-TRACE T))
                   (TRACE-PRINT GENSYM-FOO 'ENTER 'FOO 'T 'NIL 'NIL)
                   (SETQ VALUES (LET ((INSIDE-TRACE NIL))
                                  (MULTIPLE-VALUE-LIST (TRACE-APPLY (FUNCTION GENSYM-FOO)
                                                                    ARGLIST))))
                   (TRACE-PRINT GENSYM-FOO 'EXIT 'FOO 'T 'NIL 'NIL)
                   (RETURN-LIST VALUES)))))))