You do realize that in order for this to work, each node can't hold type information about the next node, right? Otherwise, how is a node<char> supposed to know what a node<int> or a node<SomeTypeIJustMadeUp> are?
Try to rethink your design so you don't have to do this, because the solution is very ugly and error-prone.