This commit also introduces new runtime checks when contructing instances of LetTuple or TupleSelect, to ensure that types are correctly set.