Fix type checking.
Collapse type checking statements.
Add capture parameter for caught exceptions.
Allow arbitrary values to be thrown.
Add optional type annotation to catch block.