Allow the control of whether to execute instructions or not according to a computation. Every conditional branch defines its hierarchy level, from the local variables' point of view.

```
(if [BOOL]
[INSTRUCTION]
)
```

Executes `[INSTRUCTION]`

if, and only if, `[BOOL]`

yields true.

```
(if_else [BOOL]
[IF_TRUE = INSTRUCTION]
[IF_FALSE = INSTRUCTION]
)
```

Executes `[IF_TRUE]`

if `[BOOL]`

yields true, but `[IF_FALSE]`

if it does not.

```
(cond
([C0 = BOOL] [I0 = INSTRUCTION])
...
([CN = BOOL] [IN = INSTRUCTION])
)
```

Executes `[II]`

, such that `[CI]`

is the first listed boolean to yield true.

```
(switch [T = COMPUTATION]
([C0 = COMPUTATION] [I0 = INSTRUCTION])
...
([CN = COMPUTATION] [IN = INSTRUCTION])
[DEFAULT = INSTRUCTION]
)
```

Executes `[II]`

, such that `[CI]`

is the first listed computation to be equal
to `[T]`

. Executes `[DEFAULT]`

if there is no such `[CI]`

.