the type parameter is case-sensitive