example/ex-struct.scm
(module ex-struct mzscheme
  (require "../struct.ss")
  (require (lib "pretty.ss"))
  (provide (all-defined))

  (define-struct-property prop:foo)
  (define-struct-property prop:bar)

  (define-struct* A (x y z))
  (define-struct* B (q [r (#:immutable)] c)
    [#:procedure (lambda (self) (list (B-q self) (B-r self)))]
    [#:property prop:foo 'baker]
    [#:property prop:bar 'present]
    #:transparent #;#:subst)
  (define-struct* C (a [b (#:auto)])
    [#:property prop:foo 'charlie]
    [#:auto-value 'b]
    #:transparent)
  (define-struct* Bprime ()
    [#:super B]
    #:transparent)

  (define a1 (make-A 'athens 'sparta 'olympia))
  (define b1 (make-B 'three 'four 'five))
  (define c1 (make-C 'a))
  )