(display name)
(display ": ")
(display (car x))
- (cond ((procedure? (variable-ref (cdr x)))
+ (cond ((variable-bound? (cdr x))
+ (let ((val (variable-ref (cdr x))))
+ (cond ((or (procedure? val) value)
+ (display separator)
+ (display val)))))
+ (else
(display separator)
- (display (variable-ref (cdr x))))
- (value
- (display separator)
- (display (variable-ref (cdr x)))))
+ (display "(unbound)")))
(if (and shadow
(not (eq? (module-ref module
(car x))
data)))
(module-filter
(lambda (name var data)
- (obarray-filter name (variable-ref var) data))))
+ (if (variable-bound? var)
+ (obarray-filter name (variable-ref var) data)
+ data))))
(cond (module (hash-fold module-filter
data
(module-obarray module)))
(define (submodules m)
(hash-fold (lambda (name var data)
- (let ((obj (variable-ref var)))
+ (let ((obj (and (variable-bound? var) (variable-ref var))))
(if (and (module? obj)
(eq? (module-kind obj) 'directory))
(cons obj data)