Exchange values stored in two different places.

`(swap! (x) (y))`

is equivalent to...

```
(let tmp (x))
(= (x) (y))
(= (y) tmp)
```

...except that `(x)`

and `(y)`

are only evaluated once each.

Exchange values stored in two different places.

`(swap! (x) (y))`

is equivalent to...

```
(let tmp (x))
(= (x) (y))
(= (y) tmp)
```

...except that `(x)`

and `(y)`

are only evaluated once each.