Index: src/Tuples/TupleExpansion.cc
===================================================================
--- src/Tuples/TupleExpansion.cc	(revision 335d81f9b08d35c3b2d0a6b92a2c05d61d2cd368)
+++ src/Tuples/TupleExpansion.cc	(revision fd642d2c3aee132ffbce05c2d7092e4dac7fa8d0)
@@ -350,4 +350,13 @@
 	}
 
+	const TypeInstType * isTtype( const Type * type ) {
+		if ( const TypeInstType * inst = dynamic_cast< const TypeInstType * >( type ) ) {
+			if ( inst->baseType && inst->baseType->kind == TypeDecl::Ttype ) {
+				return inst;
+			}
+		}
+		return nullptr;
+	}
+
 	const ast::TypeInstType * isTtype( const ast::Type * type ) {
 		if ( const ast::TypeInstType * inst = dynamic_cast< const ast::TypeInstType * >( type ) ) {
Index: src/Tuples/Tuples.h
===================================================================
--- src/Tuples/Tuples.h	(revision 335d81f9b08d35c3b2d0a6b92a2c05d61d2cd368)
+++ src/Tuples/Tuples.h	(revision fd642d2c3aee132ffbce05c2d7092e4dac7fa8d0)
@@ -52,4 +52,5 @@
 	/// returns a TypeInstType if `type` is a ttype, nullptr otherwise
 	TypeInstType * isTtype( Type * type );
+	const TypeInstType * isTtype( const Type * type );
 	const ast::TypeInstType * isTtype( const ast::Type * type );
 
