(module effect-structs mzscheme
(require (lib "unit.ss") (lib "struct.ss") "signatures.ss"
"defstruct-unit.ss" )
(provide (all-defined))
(defstructs/sig/unit effect-structs^ effect-structs@
(type-printer^)
(define (print-effect* a b c) (print-effect a b c))
(define-struct/properties effect ()
([prop:custom-write print-effect*])
#f)
(define-struct/properties (true-effect effect) () () #f)
(define-struct/properties (false-effect effect) () () #f)
(define-struct/properties (var-true-effect effect) (v) () #f)
(define-struct/properties (var-false-effect effect) (v) () #f)
(define-struct/properties (restrict-effect effect) (t v) () #f)
(define-struct/properties (remove-effect effect) (t v) () #f)
(define-struct/properties (latent-restrict-effect effect) (t) () #f)
(define-struct/properties (latent-remove-effect effect) (t) () #f)
(define-struct/properties (latent-var-true-effect effect) () () #f)
(define-struct/properties (latent-var-false-effect effect) () () #f)
)
)