no title pasted by anonymous on Tue Jul 16 00:29:21 2019

;; 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

reworked for 5.1.0 added by evhan on Tue Jul 16 01:14:59 2019

;; a.scm
(declare (unit a))

(import r7rs)

(define-library (a)
  (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))

(import r7rs)

(define-library (b)
  (import (scheme base) (a))
  (export foo)

  (begin
    (define (foo)
      (do-it))

    ))

;; z.scm
(declare (uses a b))

(import r7rs)

(define-library (z)
  (import (scheme base) (b))
  (export baz)

  (begin
    (define (baz)
      (foo))

    ))

(import (z))
(baz)