Allow template arguments to refer to each other