#lang racket/base (require racket/serialize file/convertible) (provide make-serialized-convertible) (struct serialized-convertible (ser [deser #:mutable]) #:property prop:convertible (lambda (v mode default) (unless (serialized-convertible-deser v) (set-serialized-convertible-deser! v (deserialize (serialized-convertible-ser v)))) (convert (serialized-convertible-deser v) mode default))) (define (make-serialized-convertible ser) (serialized-convertible ser #f))