racket/collects/htdp/matrix-invisible.ss
Matthias Felleisen 98c57e31df matrix
svn: r8068
2007-12-19 17:48:55 +00:00

25 lines
639 B
Scheme

#lang scheme
(require (lib "matrix-sig.ss" "htdp")
(lib "matrix-render-sig.ss" "htdp")
(lib "matrix-unit.ss" "htdp"))
(define render@
(unit (import)
(export matrix-render^)
(define-struct invisible (matrix))
(define visible? invisible?)
(define make-visible make-invisible)
(define visible-matrix invisible-matrix)))
(define invisible-matrix@
(compound-unit
(import)
(export m)
(link (((r : matrix-render^)) render@)
(((m : matrix^)) matrix@ r))))
(define-values/invoke-unit invisible-matrix@ (import) (export matrix^))
(provide-signature-elements matrix^)