Expose get_first and get_rest interface of Tuple.
Reduced Tuple size (through inheritance). Solve a problem caused by a stupid C++ feature (sizoef(empty struct) == 1).