Currently, guile's (srfi srfi-111) module ("mutable boxes") provides an implementation based on records with a single value field.
Wouldn't it make more sense to re-export the functions make-variable, variable?, variable-ref and variable-set! from the guile core as box, box?, unbox and set-box! respectively? These functions have the same signatures and the same semantics as required by the SRFI-111 spec., and they appear to be significantly faster than the current record-based implementation. Moreover, SRFI-111 boxes and guile variable objects are clearly semantically the same thing. It's bad enough having two names for the same thing, without having two implementations too. Reference: http://srfi.schemers.org/srfi-111/srfi-111.html