allow set-attr! with a function value