Parse slices
Simplify return statement parsing
Add type inference for slices
Add visit support for slice nodes
Implement union type substitution
Test is_func_type in types_tests
Support functions that return different types based on argument types