add typeOf for NTuples; make NTuple covariant

This pull request will enable defining functions taking NTuples.
Can this not have a return type? Is in NTupleType[T]?