26 lines
404 B
Racket
26 lines
404 B
Racket
#lang racket/load
|
|
|
|
(module mutator typed/racket
|
|
(define: y : Integer 0)
|
|
|
|
(: set-y! (Integer -> Void))
|
|
(define (set-y! v)
|
|
(set! y v))
|
|
|
|
(provide y set-y!))
|
|
|
|
(module user typed/racket
|
|
(require 'mutator)
|
|
|
|
(: foo (Zero -> Zero))
|
|
(define (foo y)
|
|
(printf "(foo ~v)~n" y)
|
|
y)
|
|
|
|
(cond [(zero? y) (set-y! 10)
|
|
(foo y)]
|
|
[else y]))
|
|
|
|
(require 'user)
|
|
|