21 lines
549 B
Racket
21 lines
549 B
Racket
#lang typed/syndicate/roles
|
|
|
|
(require rackunit/turnstile)
|
|
|
|
(define-type-alias τc
|
|
(U (Tuple Int)
|
|
(Observe (Tuple ★/t))))
|
|
|
|
;; I actually think this is OK, since elaborating the pattern inserts a type
|
|
;; that will still be checked by `project-safe?`
|
|
|
|
(check-type (lambda ()
|
|
(spawn τc
|
|
(begin
|
|
(define (on!)
|
|
(on (asserted (tuple $x))
|
|
#f))
|
|
(start-facet x
|
|
(on!)))))
|
|
: (proc -> ★/t #:spawns ((Actor τc))))
|