diff --git a/indenting2.el b/indenting2.el index cebfd39..22b72fd 100644 --- a/indenting2.el +++ b/indenting2.el @@ -1,6 +1,6 @@ ;; Emacs indent settings (progn (mapcar #'(lambda (x) (put x 'scheme-indent-function 1)) - '(transition sequence-actions)) + '(role/anon transition sequence-actions)) (mapcar #'(lambda (x) (put x 'scheme-indent-function 2)) '(role role/fresh yield))) diff --git a/os2.rkt b/os2.rkt index 0395b34..e2540ec 100644 --- a/os2.rkt +++ b/os2.rkt @@ -34,6 +34,7 @@ transition/c))) role + role/anon role/fresh (except-out (struct-out add-role) add-role) (rename-out [make-add-role add-role]) @@ -267,6 +268,11 @@ topics-expr (handlers presence-handler absence-handler message-handler)))]))) +;; For use when you don't care to invent a name for a role. +(define-syntax-rule (role/anon topic pieces ...) + (role (gensym 'anonymous-role) topic pieces ...)) + +;; Invents a role name for you, and binds it to pre-eid-var. (define-syntax-rule (role/fresh pre-eid-var rest ...) (let ((pre-eid-var (gensym 'role))) (role pre-eid-var rest ...)))