Minimize surprises

Yes, we want flexibility, but we also strive for safety, hopefully at the right places.

Limiting effects*

In place changes are rare and visible, direct out of context changes are impossible.

Failures and Errors*

We distinct between failure that can normally happen and can be handled, and coder’s error.

Validation dialect*

Validating input or other values is important part and should be visible and explicit.