typed return