;; FILE "yasos-base.scm" ;; IMPLEMENTS YASOS: Yet Another Scheme Object System ;; AUTHOR Ken [dot] Dickey [at] Whidbey [dot] Com ;; DATE 1992 March 1 ;; LAST UPDATED 1992 March 5 ;; CHICKEN-PORT 2008 February 7 ;; INSTANCES (module yasos-base (export make-instance instance? instance-dispatcher) (import scheme) (define make-instance 'bogus) ;; defined below (define instance? 'bogus) (define instance-dispatcher 'bogus) (let ((instance-tag "instance")) ;; Make a unique tag within a local scope. ;; No other data object is EQ? to this tag. (set! make-instance (lambda (dispatcher) (cons instance-tag dispatcher))) (set! instance? (lambda (obj) (and (pair? obj) (eq? (car obj) instance-tag)))) (set! instance-dispatcher (lambda (inst) (cdr inst)))) ) ;;; ;;; COPYRIGHT (c) 1992,2008 by Kenneth A Dickey, All rights reserved. ;;; ;;;Permission is hereby granted, free of charge, to any person ;;;obtaining a copy of this software and associated documentation ;;;files (the "Software"), to deal in the Software without ;;;restriction, including without limitation the rights to use, ;;;copy, modify, merge, publish, distribute, sublicense, and/or ;;;sell copies of the Software, and to permit persons to whom ;;;the Software is furnished to do so, subject to the following ;;;conditions: ;;; ;;;The above copyright notice and this permission notice shall ;;;be included in all copies or substantial portions of the Software. ;;; ;;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ;;;EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES ;;;OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ;;;NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT ;;;HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, ;;;WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING ;;;FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ;;;OTHER DEALINGS IN THE SOFTWARE.