Code cleanup
Update docstring
Use [] not <> for generic callable str conversion
Begin fixing semantic anal of generic functions
Fix semantic analysis of tuple types
Add basic semantic analysis of function types
Handle nested type vars in generic functions
Handle type variable in function return type
Update comments
Support nested generic functions
Implement new overload syntax (partially)
Fix a test case
Skip unsupported test cases