;;;; Variable
(define (make-variable name)
+ (guarantee-symbol name 'MAKE-VARIABLE)
(system-hunk3-cons (ucode-type variable) name #t '()))
(define (variable? object)
;;;; Definition/Assignment
(define (make-definition name value)
+ (guarantee-symbol name 'MAKE-DEFINITION)
(&typed-pair-cons (ucode-type definition) name value))
(define (definition? object)
(define-guarantee assignment "SCode assignment")
(define (make-assignment-from-variable variable value)
+ (guarantee-variable variable 'MAKE-ASSIGNMENT-FROM-VARIABLE)
(&typed-pair-cons (ucode-type assignment) variable value))
(define (assignment-variable assignment)
(assignment-value assignment)))
(define (make-assignment name value)
+ (guarantee-symbol name 'MAKE-ASSIGNMENT)
(make-assignment-from-variable (make-variable name) value))
(define (assignment-name assignment)
;;;; Access
(define (make-access environment name)
+ (guarantee-symbol name 'MAKE-ACCESS)
(&typed-pair-cons (ucode-type access) environment name))
(define (access? object)