;;; -*- Mode:LISP; Package:MYPACK; Fonts:(MEDFNT MEDFNB); Readtable:CL; Base:10 -*-

(unless(find-package 'mypack)
  (make-package 'mypack :use '("LISP" "OBJ" "GLOBAL")))

(in-package 'mypack)

(eval-when(eval compile)
  (unintern 'foo-thing))

(defkind foo-thing)

(defclassvars foo-thing
  foolist
  foolabel)

(defobfun (foolist foo-thing) ()
  (print foolist))

(defobfun (fooable foo-thing) ()
  (list foolist foolabel))

(defobfun (foo-label foo-thing) ()
  "hi there")

(defobfun (foofunc foo-thing) ()
  #'(lambda(x) (print x) (print foolabel)))

(defobfun (exist foo-thing) (&rest args &key label &allow-other-keys)
  (apply #'shadowed-exist args)
  (fooable)
  (have 'foolabel
	(or label foolabel (foo-label)))
  (foofunc))

