add typeOf for NTuples; make NTuple covariant

This pull request will enable defining functions taking NTuples.
this is declared inside the main method.
This is intended to generate the code bellow.