(declare (block) (standard-bindings) (extended-bindings))
(begin
  (define std/srfi/124#ephemeron::t
    (make-struct-type
     'std/srfi/124#ephemeron::t
     '#f
     '3
     'ephemeron
     '((final: . #t))
     ':init!
     '(key datum broken?)))
  (define std/srfi/124#ephemeron?
    (make-struct-predicate std/srfi/124#ephemeron::t))
  (define std/srfi/124#make-ephemeron
    (lambda _$args89417_
      (apply make-struct-instance std/srfi/124#ephemeron::t _$args89417_)))
  (define std/srfi/124#ephemeron-key
    (make-struct-field-accessor std/srfi/124#ephemeron::t '0))
  (define std/srfi/124#ephemeron-datum
    (make-struct-field-accessor std/srfi/124#ephemeron::t '1))
  (define std/srfi/124#ephemeron-broken?
    (make-struct-field-accessor std/srfi/124#ephemeron::t '2))
  (define std/srfi/124#ephemeron-key-set!
    (make-struct-field-mutator std/srfi/124#ephemeron::t '0))
  (define std/srfi/124#ephemeron-datum-set!
    (make-struct-field-mutator std/srfi/124#ephemeron::t '1))
  (define std/srfi/124#ephemeron-broken?-set!
    (make-struct-field-mutator std/srfi/124#ephemeron::t '2))
  (define std/srfi/124#ephemeron:::init!
    (lambda (_self89413_ _key89414_ _datum89415_)
      (if (##fx< '2 (##vector-length _self89413_))
          (begin
            (##vector-set! _self89413_ '1 _key89414_)
            (##vector-set! _self89413_ '2 _datum89415_))
          (error '"struct-instance-init!: too many arguments for struct"
                 _self89413_))))
  (bind-method!
   std/srfi/124#ephemeron::t
   ':init!
   std/srfi/124#ephemeron:::init!
   '#f)
  (define std/srfi/124#reference-barrier (lambda (_key89288_) '#!void)))
