From 8cf13a9bbf84c9f63d33386ef1471084711f0c4a Mon Sep 17 00:00:00 2001 From: Sam Caldwell Date: Tue, 21 May 2019 17:22:53 -0400 Subject: [PATCH] stop-when derived form --- racket/typed/roles.rkt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/racket/typed/roles.rkt b/racket/typed/roles.rkt index c655938..b2a6b51 100644 --- a/racket/typed/roles.rkt +++ b/racket/typed/roles.rkt @@ -22,6 +22,7 @@ define/query-value define/query-set define/query-hash + stop-when ;; endpoints assert on field ;; expressions @@ -338,6 +339,17 @@ (on (retracted p) (set! x (hash-remove (ref x) e-key))))]) +(define-typed-syntax (stop-when E script ...) ≫ + [[forged-name ≫ _ : FacetName] ⊢ forged-name ≫ forged-name-] + #:with forged-name (attach #'(#%app- syndicate:current-facet-id) + ': + (type-eval #'FacetName)) + ---------------------------------------- + [≻ (on E + (let ([x forged-name]) + (stop x + script ...)))]) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Expressions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;