#lang typed/syndicate/roles

(require rackunit/turnstile)

;; make sure that we can look at the type of the facet without the ρ in it
(check-type
 (role-strings
   (start-facet x
     (define (push-results)
       (cond
         [(zero? 0)
          (start-facet done (assert #t))]
         [else
          #f]))
    (define (∀ (ρ) (perform-task [k : (proc -> ★/t #:roles (ρ))]))
        (start-facet perform
         (on start (stop perform (k)))))
    (on start (call/inst perform-task push-results))))
 : (List String)
 -> (list
     "(Role (x) (Reacts OnStart (Role (perform) (Reacts OnStart (Stop perform (Branch (Effs (Role (done) (Shares Bool))) (Effs)))))))"))
