Refactor variable renaming to take into account mergepoints and try-ors.
Fix copy propagation bug the caused the all-fail code to be replaced.
Cleanup
Fix bug in rule merging causing duplicate rules for overloaded arrows.
Return statement/throw clause now present on all rules that can fail.
When assigning to a variable infer from the variable the expected type of the expression.
Treat native operators and native constructors in different ways in the analysis and backend.
Optimization for equality checking on equally empty lists.