p 1) ((struct-ref p 2) value)) ...) body body* ...))))))) (define* (fluid->parameter fluid #:optional (conv (lambda (x) x))) "Make a parameter that wraps a fluid. The value of the parameter will be the same as the value of the fluid. If the parameter is rebound in some dynamic extent, perhaps via `parameterize', the new value will be run through the optional CONV procedure, as with any parameter. Note that unlike `make-parameter', CONV is not applied to the initial value." (make-struct/no-tail (case-lambda (() (fluid-ref fluid)) ((x) (let ((prev (fluid-ref fluid))) (fluid-set! fluid (conv x)) prev))) fluid conv))