implementing set! as a macro in the prelude