--- /dev/null
+
+(define-module (guile gc))
+
+(define (R) (reload-module (current-module)))
+
+(define gc-size 20)
+(define the-cars (make-vector gc-size))
+(define the-cdrs (make-vector gc-size))
+(define gc-free 0)
+(define (show-gc)
+ (display "free:") (display gc-free) (newline)
+ (display "cars:") (display the-cars) (newline))
+(show-gc)
+
+(define (make-cell type . x)
+ (cons type (if (pair? x) (car x))))
+
+(define (gc-alloc)
+ ((lambda (index)
+ (set! gc-free (+ gc-free 1))
+ ;;(cons 'cell index)
+ (make-cell *unspecified* index)
+ )
+ gc-free))
+
+(define (gc-make-number x)
+ ((lambda (cell)
+ (vector-set! the-cars (cdr cell) (make-cell 'number x))
+ cell)
+ (gc-alloc)))
+
+(display (gc-make-number 3)) (newline)
+(show-gc)