# Unary Operators

## Type inferences

The type of **op VALUE** is exactly the same as **VALUE**.

## Definitions

### + VALUE

- For numbers, returns **VALUE**.
- It is not allowed on other types.

### - VALUE

- For signed integers, returns -1 * **VALUE**.
- For floating-point numbers, returns -1 * **VALUE**.
- It is not allowed on other types.

### not VALUE

- For integers, returns the bit-wise reversed value of **VALUE**.
- For **bool**, switch **true** and **false**.
- It is not allowed on other types.

