fix -swap! invokes in swap!