racket/collects/htdp/matrix-invisible.ss
2008-02-23 09:42:03 +00:00

25 lines
600 B
Scheme

#lang scheme
(require htdp/matrix-sig
htdp/matrix-render-sig
htdp/matrix-unit)
(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^)