racket/collects/browser/browser-unit.ss
2005-05-27 18:56:37 +00:00

45 lines
1.5 KiB
Scheme

(module browser-unit mzscheme
(require (lib "unitsig.ss")
(lib "mred-sig.ss" "mred")
(lib "plt-installer-sig.ss" "setup")
(lib "tcp-sig.ss" "net")
(lib "url-sig.ss" "net")
(lib "url-unit.ss" "net")
"browser-sig.ss"
"private/bullet.ss"
"private/html.ss"
"private/hyper.ss"
"private/sig.ss")
(provide browser@)
(define pre-browser@
(compound-unit/sig
(import (plt-installer : setup:plt-installer^)
(mred : mred^)
(tcp : net:tcp^)
(url : net:url^))
(link [html : html^ (html@ mred url)]
[hyper : hyper^ (hyper@ html mred plt-installer url)]
[bullet-size : bullet-export^ ((unit/sig bullet-export^
(import)
(rename (html:bullet-size bullet-size))
(define html:bullet-size bullet-size)))])
(export (open hyper)
(open bullet-size)
(open (html : html-export^)))))
;; this extra layer of wrapper here is only to
;; ensure that the browser^ signature actually matches
;; the export of the pre-browser@ unit.
;; (it didn't before, so now we check.)
(define browser@
(compound-unit/sig
(import (plt-installer : setup:plt-installer^)
(mred : mred^)
(tcp : net:tcp^)
(url : net:url^))
(link [pre-browser : browser^ (pre-browser@ plt-installer mred tcp url)])
(export (open pre-browser)))))