Index: tests/queue.cfa
===================================================================
--- tests/queue.cfa	(revision edf3ff16dc4dada954dfc2b10d3eb56f09f3ec0f)
+++ tests/queue.cfa	(revision b3c8496a418823a0579dda2d3179e4d6e61a1c8b)
@@ -13,4 +13,11 @@
 	void ?{}( Fred & fred, int p ) with( fred ) {
 		i = p;
+	}
+	Fred *& Next( Fred * n ) {
+		return (Fred *)Next( (Colable *)n );
+	}
+
+	bool listed( Fred * n ) {
+		return Next( (Colable *)n ) != 0p;
 	}
 
@@ -68,4 +75,12 @@
 	}
 
+	Mary *& Next( Mary * n ) {
+		return (Mary *)Next( (Colable *)n );
+	}
+
+	bool listed( Mary * n ) {
+		return Next( (Colable *)n ) != 0p;
+	}
+
 	Queue(Mary) mary;
 	QueueIter(Mary) maryIter = { mary };
Index: tests/sequence.cfa
===================================================================
--- tests/sequence.cfa	(revision edf3ff16dc4dada954dfc2b10d3eb56f09f3ec0f)
+++ tests/sequence.cfa	(revision b3c8496a418823a0579dda2d3179e4d6e61a1c8b)
@@ -13,4 +13,16 @@
 	void ?{}( Fred & fred, int p ) with( fred ) {
 		i = p;
+	}
+
+	Fred *& Back( Fred * n ) {
+		return (Fred *)Back( (Seqable *)n );
+	}
+
+	Fred *& Next( Fred * n ) {
+		return (Fred *)Next( (Colable *)n );
+	}
+
+	bool listed( Fred * n ) {
+		return Next( (Colable *)n ) != 0p;
 	}
 
@@ -76,4 +88,16 @@
 	}
 
+	Mary *& Back( Mary * n ) {
+		return (Mary *)Back( (Seqable *)n );
+	}
+
+	Mary *& Next( Mary * n ) {
+		return (Mary *)Next( (Colable *)n );
+	}
+
+	bool listed( Mary * n ) {
+		return Next( (Colable *)n ) != 0p;
+	}
+
 	Sequence(Mary) mary;
 	Sequence(Mary) baz;
Index: tests/stack.cfa
===================================================================
--- tests/stack.cfa	(revision edf3ff16dc4dada954dfc2b10d3eb56f09f3ec0f)
+++ tests/stack.cfa	(revision b3c8496a418823a0579dda2d3179e4d6e61a1c8b)
@@ -13,4 +13,11 @@
 	void ?{}( Fred & fred, int p ) with( fred ) {
 		i = p;
+	}
+	Fred *& Next( Fred * n ) {
+		return (Fred *)Next( (Colable *)n );
+	}
+
+	bool listed( Fred * n ) {
+		return Next( (Colable *)n ) != 0p;
 	}
 
@@ -68,4 +75,12 @@
 	}
 
+	Mary *& Next( Mary * n ) {
+		return (Mary *)Next( (Colable *)n );
+	}
+
+	bool listed( Mary * n ) {
+		return Next( (Colable *)n ) != 0p;
+	}
+
 	Stack(Mary) mary;
 	StackIter(Mary) maryIter = { mary };
