"Construct an alist of (symbol . method), where the method is wrapped
with wrap-apply to facilitate live hacking and allow the method definition
to come after class definition."
- (wrap-rmeta-slot
+ (build-rmeta-slot
(list (cons (quote symbol)
(wrap-apply method)) ...)))
#:use-module (srfi srfi-9)
#:use-module (ice-9 match)
- #:export (wrap-rmeta-slot
+ #:export (build-rmeta-slot
rmeta-slot-table rmeta-slot-cache
maybe-build-rmeta-slot-cache!
class-rmeta-ref))
;;; (define-class <kah-lassy> ()
;;; (entries #:allocation #:each-subclass
;;; #:init-thunk
-;;; (wrap-rmeta-slot
+;;; (build-rmeta-slot
;;; `((foo . "bar")
;;; (baz . "basil")))))
;;;
;;; (define-class <sub-lassy> (<kah-lassy>)
;;; (entries #:allocation #:each-subclass
;;; #:init-thunk
-;;; (wrap-rmeta-slot
+;;; (build-rmeta-slot
;;; `((foo . "foo2")
;;; (peanut . "gallery")))))
;;;
(table rmeta-slot-table)
(cache rmeta-slot-cache set-rmeta-slot-cache!))
-(define (make-rmeta-slot table)
- (%make-rmeta-slot table #f))
-
-(define (wrap-rmeta-slot table)
- "In general, using wrap-rmeta-slot in combination with "
+(define (build-rmeta-slot table)
(lambda ()
- (make-rmeta-slot table)))
+ (%make-rmeta-slot table #f)))
;; Immutable and unique
(define %the-nothing (cons '*the* '*nothing*))
(define-class <kah-lassy> ()
(entries #:allocation #:each-subclass
#:init-thunk
- (wrap-rmeta-slot
+ (build-rmeta-slot
`((foo . "bar")
(baz . "basil")))))
(define-class <sub-lassy> (<kah-lassy>)
(entries #:allocation #:each-subclass
#:init-thunk
- (wrap-rmeta-slot
+ (build-rmeta-slot
`((foo . "foo2")
(peanut . "gallery")))))