;; a.scm (declare (unit a)) (use r7rs) (define-library (a-lib) (import (scheme base) (scheme write)) (export do-it) (begin (define (do-it) (display "I did it.") (newline)) )) ;; b.scm (declare (unit b)) (declare (uses a)) (use r7rs) (define-library (b-lib) (import (scheme base) (a-lib)) (export foo) (begin (define (foo) (do-it)) )) ;; z.scm (declare (uses b)) (use r7rs) (define-library (z-lib) (import b-lib) (export baz) (begin (define (baz) (foo)) )) (import z-lib) (baz) ;; Makefile all: csc -J -c a.scm csc -J -c b.scm csc -J -c z.scm csc -o prog a.o b.o z.o