(module struct mzscheme ;; don't provide reduction-relation directly, so that we can use that for the macro's name. (provide reduction-relation-lang reduction-relation-procs reduction-relation-rule-names reduction-relation-lws make-reduction-relation reduction-relation? (struct rule-pict (arrow lhs rhs label side-conditions fresh-vars pattern-binds))) (define-struct rule-pict (arrow lhs rhs label side-conditions fresh-vars pattern-binds)) ;; procs : (listof (exp exp (any -> any) (listof any) -> (listof any))) ;; rule-names : (listof sym) (define-struct reduction-relation (lang procs rule-names lws)))