coops' make added by C-Keen on Wed Jan 17 16:32:58 2018
(define make
(lambda (c . svsv)
(check-instance c 'make)
(let* ((slotnames
(fast-standard-class-slot c +standard-class-slotnames-slot+))
(sv (make-vector (length slotnames) uninitialized))
(i (make-coops-instance c sv)))
(define (slot-index name)
(or (position name slotnames)
(error "no such slot in instances of given class" name c)))
(let loop ((svsv svsv))
(cond ((null? svsv)
(unless bootstrapping (initialize-instance i))
i)
((null? (cdr svsv))
(error 'make "missing slot value" (car svsv) i))
(else
(##sys#setslot sv (slot-index (car svsv)) (cadr svsv))
(loop (cddr svsv))))))))