Index: src/Tuples/TupleExpansion.cc
===================================================================
--- src/Tuples/TupleExpansion.cc	(revision 335d81f9b08d35c3b2d0a6b92a2c05d61d2cd368)
+++ src/Tuples/TupleExpansion.cc	(revision 83b52f10c32ca12f8f96a9532884e06dd2d083dd)
@@ -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 83b52f10c32ca12f8f96a9532884e06dd2d083dd)
@@ -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 );
 
