(define-signature Exn^ (raise-help-item-locked-exn help-item-locked-exn? raise-no-matches-found-exn no-matches-found-exn? raise-product-name-exists-exn product-name-exists-exn?)) (define-signature sort^ (sort)) (define-signature Common^ ((open Exn^) (open sort^))) (define-signature Interface^ (make-symbol-datum-req make-string-datum-req make-number-datum-req make-select-one-datum-req make-option make-form make-menu make-download make-instructions display-menu display-form display-msg display-instructions display-download)) (define-signature ControllerSystem^ (startTech startCustomer)) (define-signature ControllerClasses^ (ItenDataExt% HelpItemExt% InstructionExt% SolutionExt% QuestionExt%)) (define-signature Controller^ ((open ControllerClasses^) (open ControllerSystem^))) (define-signature ServerSystem^ (start-server)) (define-signature ServerClasses^ (ItemData% HelpItem% Instruction% Solution% Question%)) (define-signature ServerOperations^ (get-product-list get-problem-list/product add-product add-problem/product add-note add-download get-next-help-item insert-instruction insert-question insert-answer insert-solution modify-help-item add-bug-fix-ref search-kb)) (define-signature Server^ ((open ServerClasses^) (open ServerOperations^) theKB)) (define-signature KnowledgeBase^ (create-kb))