diff --git a/indenting2.el b/indenting2.el index f6b60c0..6f42fef 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 extend-transition)) + '(transition extend-transition prefix-transition)) (mapcar #'(lambda (x) (put x 'scheme-indent-function 2)) '(role role/fresh yield))) diff --git a/os2.rkt b/os2.rkt index 7a561e5..0126b9a 100644 --- a/os2.rkt +++ b/os2.rkt @@ -21,6 +21,7 @@ (except-out (struct-out transition) transition) (rename-out [make-transition transition]) extend-transition + prefix-transition role role/fresh @@ -212,6 +213,11 @@ [(transition state actions) (transition state (list actions more-actions))] [state (transition state more-actions)])) +(define (prefix-transition t . more-actions) + (match t + [(transition state actions) (transition state (list more-actions actions))] + [state (transition state more-actions)])) + ;;--------------------------------------------------------------------------- ;; Topics and roles