Introducing List<x> <=> list<x> templates with generic type handling