substitute properly into tc produced type