Assert statement

The assert statement is used to narrow the type of a variable.
If successful, the variable's type is narrowed following the assert statement.
If unsuccessful, it either panics, or where the else branch is specified, it is executed.
Such an else branch must either yield, return, fail or panic. Where yield is used, it must yield a value of the narrowed type, which will be assigned to the variable following the assert statement.
Assert successful.
Assert with inverted type.
Assert panics.
Assert yields default value on type mismatch.