Fixed several issues with handling type arguments, including returning a parametrized type from a trait method