Support more than one type parameter