diff --git a/racket/typed/roles.rkt b/racket/typed/roles.rkt index d15e7a4..43f0932 100644 --- a/racket/typed/roles.rkt +++ b/racket/typed/roles.rkt @@ -26,6 +26,7 @@ Λ inst ;; making types define-type-alias + assertion-struct define-constructor define-constructor* ;; values #%datum @@ -75,6 +76,14 @@ (require rackunit) (require rackunit/turnstile)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Creating Communication Types +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define-simple-macro (assertion-struct name:id (~datum :) Name:id (slot:id ...)) + (define-constructor* (name : Name slot ...))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Core forms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;