packages feed

cpsa-4.4.1: tst/abc.scm

;;  Simple example of A-B-C cascading.
;;  Input should be a dead skeleton.
;;  Cascading occurs because roles A, B, and C seem to
;;  create progress, but nothing can ever produce their input in the
;;  correct form.

(defprotocol abc basic
  (defrole init (vars (x text) (k skey))
    (trace
     (send (enc x k))
     (recv (enc x x k)))
    (uniq-orig x)
    (non-orig k))
  (defrole A (vars (x text) (k skey))
    (trace
     (recv (enc "A" x k))
     (send (enc x x k))))
  (defrole B (vars (x text) (k skey))
    (trace
     (recv (enc "B" x k))
     (send (enc x x k))))
  (defrole C (vars (x text) (k skey))
    (trace
     (recv (enc "C" x k))
     (send (enc x x k))))
)

(defskeleton abc
  (vars (x text) (k skey))
  (defstrand init 2 (x x) (k k)))