Index: tests/list/dlist-insert-remove-2.cfa
===================================================================
--- tests/list/dlist-insert-remove-2.cfa	(revision 8d1ad36cef9bb7b219f38dfae154e557ae4f238e)
+++ tests/list/dlist-insert-remove-2.cfa	(revision 7d51ef867a6e78e1b2b6f9e5456b64a42c555758)
@@ -55,5 +55,6 @@
 ////////////////////////////////////////////////////////////
 
-void printMyFredsFwd(diref(fred, fred.mine) f) {
+void printMyFredsFwd(fred & f) {
+    with( DLINK_VIA( fred, fred.mine ) )
 	do {
 		sout | f.adatum;
@@ -61,5 +62,6 @@
 }
 
-void printMyFredsRev(diref(fred, fred.mine) f) {
+void printMyFredsRev(fred & f) {
+    with( DLINK_VIA( fred, fred.mine ) )
 	do {
 		sout | f.adatum;
@@ -75,12 +77,12 @@
 	}
 	if (&f1) {
-		printMyFredsFwd(f1`from);	sout | '-';
-		printMyFredsRev(f1`from);	sout | '-';
+		printMyFredsFwd(f1);	sout | '-';
+		printMyFredsRev(f1);	sout | '-';
 	} else {
 		sout | '-'; sout | '-';
 	}
 	if (&f2) {
-		printMyFredsFwd(f2`from);	sout | '-';
-		printMyFredsRev(f2`from);	sout | '-';
+		printMyFredsFwd(f2);	sout | '-';
+		printMyFredsRev(f2);	sout | '-';
 	} else {
 		sout | '-'; sout | '-';
@@ -88,5 +90,6 @@
 }
 
-void printYourFredsFwd(diref(fred, fred.yours) f) {
+void printYourFredsFwd(fred & f) {
+    with( DLINK_VIA( fred, fred.yours ) )
 	do {
 		sout | f.adatum;
@@ -94,5 +97,6 @@
 }
 
-void printYourFredsRev(diref(fred, fred.yours) f) {
+void printYourFredsRev(fred & f) {
+    with( DLINK_VIA( fred, fred.yours ) )
 	do {
 		sout | f.adatum;
@@ -107,12 +111,12 @@
 	}
 	if (&f1) {
-		printYourFredsFwd(f1`from);	sout | '-';
-		printYourFredsRev(f1`from);	sout | '-';
+		printYourFredsFwd(f1);	sout | '-';
+		printYourFredsRev(f1);	sout | '-';
 	} else {
 		sout | '-'; sout | '-';
 	}
 	if (&f2) {
-		printYourFredsFwd(f2`from);	sout | '-';
-		printYourFredsRev(f2`from);	sout | '-';
+		printYourFredsFwd(f2);	sout | '-';
+		printYourFredsRev(f2);	sout | '-';
 	} else {
 		sout | '-'; sout | '-';
@@ -275,5 +279,4 @@
 // All three tests exercise the case of creating an empty container and
 // adding two items to it.
-
 void test__insertfirst_two_on_empty__fred_mine() {
 
@@ -317,5 +320,4 @@
 	printYourFreddies(f1, f2, 0);   // 3.14, 0.5; 3.14; 0.5; 0.5, 3.14 (modified)
 }
-
 void test__insertfirst_two_on_empty__mary() {
 
@@ -323,5 +325,5 @@
 	mary m2 = {0.5};
 
-	dlist(mary, mary) lm;
+	dlist(mary) lm;
 
 	verify(validate(lm));
@@ -392,5 +394,5 @@
 	mary m2 = {0.5};
 
-	dlist(mary, mary) lm;
+	dlist(mary) lm;
 
 	verify(validate(lm));
@@ -421,16 +423,15 @@
 	dlist(fred, fred.mine) lf;
 
-	assert(! lf`first);
-	assert(! lf`last);
+	assert( & lf`first == 0p );
+	assert( & lf`last == 0p );
 
 	insert_first(lf, f1);
 
-	assert(DUMB_COMPARE(lf`first, & f1));
-	assert(DUMB_COMPARE(lf`last , & f1));
+	assert( & lf`first == & f1 );
+	assert( & lf`last  == & f1 );
 
 	verify(validate(lf));
 
-	diref(fred, fred.mine) f1_mine = f1`from;
-	insert_after(f1_mine, f2);
+	with ( DLINK_VIA(fred, fred.mine) ) insert_after(f1, f2);
 
 	verify(validate(lf));
@@ -439,6 +440,6 @@
 	printYourFreddies(f1, f2, 0);   // 3.14; 3.14; 0.5; 0.5 (unmodified)
 
-	assert(DUMB_COMPARE(lf`first, & f1));
-	assert(DUMB_COMPARE(lf`last , & f2));
+	assert( & lf`first == & f1 );
+	assert( & lf`last  == & f2 );
 }
 
@@ -450,16 +451,15 @@
 	dlist(fred, fred.yours) lf;
 
-	assert(! lf`first);
-	assert(! lf`last);
+	assert( & lf`first == 0p );
+	assert( & lf`last == 0p );
 
 	insert_first(lf, f1);
 
-	assert(DUMB_COMPARE(lf`first, & f1));
-	assert(DUMB_COMPARE(lf`last , & f1));
+	assert( & lf`first == & f1 );
+	assert( & lf`last  == & f1 );
 
 	verify(validate(lf));
 
-	diref(fred, fred.yours) f1_yours = f1`from;
-	insert_after(f1_yours, f2);
+    with ( DLINK_VIA(fred, fred.yours) ) insert_after(f1, f2);
 
 	verify(validate(lf));
@@ -468,6 +468,6 @@
 	printYourFreddies(f1, f2, 0);   // 3.14, 0.5; 3.14; 0.5; 0.5, 3.14 (modified)
 
-	assert(DUMB_COMPARE(lf`first, & f1));
-	assert(DUMB_COMPARE(lf`last , & f2));
+	assert( & lf`first == & f1 );
+	assert( & lf`last  == & f2 );
 }
 
@@ -477,13 +477,13 @@
 	mary m2 = {0.5};
 
-	dlist(mary, mary) lm;
-
-	assert(! lm`first);
-	assert(! lm`last);
+	dlist(mary) lm;
+
+	assert( & lm`first == 0p );
+	assert( & lm`last == 0p );
 
 	insert_first(lm, m1);
 
-	assert(DUMB_COMPARE(lm`first, & m1));
-	assert(DUMB_COMPARE(lm`last , & m1));
+	assert( & lm`first == & m1 );
+	assert( & lm`last  == & m1 );
 
 	verify(validate(lm));
@@ -495,6 +495,6 @@
 	printMariatheotokos(m1, m2, 0); // 3.14, 0.5; 3.14; 0.5; 0.5, 3.14 (modified)
 
-	assert(DUMB_COMPARE(lm`first, & m1));
-	assert(DUMB_COMPARE(lm`last , & m2));
+	assert( & lm`first == & m1 );
+	assert( & lm`last  == & m2 );
 }
 
@@ -516,16 +516,15 @@
 	dlist(fred, fred.mine) lf;
 
-	assert(! lf`first);
-	assert(! lf`last);
+	assert( & lf`first == 0p );
+	assert( & lf`last == 0p );
 
 	insert_last(lf, f2);
 
-	assert(DUMB_COMPARE(lf`first, & f2));
-	assert(DUMB_COMPARE(lf`last , & f2));
+	assert( & lf`first == & f2 );
+	assert( & lf`last  == & f2 );
 
 	verify(validate(lf));
 
-	diref(fred, fred.mine) f2_mine = f2`from;
-	insert_before(f2_mine, f1);
+	with ( DLINK_VIA(fred, fred.mine) ) insert_before(f2, f1);
 
 	verify(validate(lf));
@@ -534,6 +533,6 @@
 	printYourFreddies(f1, f2, 0);   // 3.14; 3.14; 0.5; 0.5 (unmodified)
 
-	assert(DUMB_COMPARE(lf`first, & f1));
-	assert(DUMB_COMPARE(lf`last , & f2));
+	assert( & lf`first == & f1 );
+	assert( & lf`last  == & f2 );
 }
 
@@ -545,16 +544,15 @@
 	dlist(fred, fred.yours) lf;
 
-	assert(! lf`first);
-	assert(! lf`last);
+	assert( & lf`first == 0p );
+	assert( & lf`last == 0p );
 
 	insert_last(lf, f2);
 
-	assert(DUMB_COMPARE(lf`first, & f2));
-	assert(DUMB_COMPARE(lf`last , & f2));
+	assert( & lf`first == & f2 );
+	assert( & lf`last  == & f2 );
 
 	verify(validate(lf));
 
-	diref(fred, fred.yours) f2_yours = f2`from;
-	insert_before(f2_yours, f1);
+	with ( DLINK_VIA(fred, fred.yours) )insert_before(f2, f1);
 
 	verify(validate(lf));
@@ -563,6 +561,6 @@
 	printYourFreddies(f1, f2, 0);   // 3.14, 0.5; 3.14; 0.5; 0.5, 3.14 (modified)
 
-	assert(DUMB_COMPARE(lf`first, & f1));
-	assert(DUMB_COMPARE(lf`last , & f2));
+	assert( & lf`first == & f1 );
+	assert( & lf`last  == & f2 );
 }
 
@@ -572,13 +570,13 @@
 	mary m2 = {0.5};
 
-	dlist(mary, mary) lm;
-
-	assert(! lm`first);
-	assert(! lm`last);
+	dlist(mary) lm;
+
+	assert( & lm`first == 0p );
+	assert( & lm`last == 0p );
 
 	insert_last(lm, m2);
 
-	assert(DUMB_COMPARE(lm`first, & m2));
-	assert(DUMB_COMPARE(lm`last , & m2));
+	assert( & lm`first == & m2 );
+	assert( & lm`last  == & m2 );
 
 	verify(validate(lm));
@@ -590,8 +588,7 @@
 	printMariatheotokos(m1, m2, 0); // 3.14, 0.5; 3.14; 0.5; 0.5, 3.14 (modified)
 
-	assert(DUMB_COMPARE(lm`first, & m1));
-	assert(DUMB_COMPARE(lm`last , & m2));
-}
-
+	assert( & lm`first == & m1 );
+	assert( & lm`last  == & m2 );
+}
 #if 0
 
@@ -900,6 +897,5 @@
 	verify(validate(flm));
 
-	diref(fred, fred.mine) f1_mine = f1`from;
-	remove(f1_mine);
+	with( DLINK_VIA(fred, fred.mine) ) remove(f1);
 
 	verify(validate(fly));
@@ -916,4 +912,5 @@
 	// assert(f1.$links_mine.prev.is_terminator == false);
 }
+
 
 void test__remove_at_head__fred_yours() {
@@ -939,6 +936,5 @@
 	verify(validate(flm));
 
-	diref(fred, fred.yours) f1_yours = f1`from;
-	remove(f1_yours);
+	with( DLINK_VIA(fred, fred.yours) ) remove(f1);
 
 	verify(validate(fly));
@@ -962,5 +958,5 @@
 	mary m3 = {3.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 	insert_last(ml, m1);
 	insert_last(ml, m2);
@@ -1017,6 +1013,5 @@
 	verify(validate(flm));
 
-	diref(fred, fred.mine) f3_mine = f3`from;
-	remove(f3_mine);
+	with( DLINK_VIA(fred, fred.mine) ) remove(f3);
 
 	verify(validate(fly));
@@ -1056,6 +1051,5 @@
 	verify(validate(flm));
 
-	diref(fred, fred.yours) f3_yours = f3`from;
-	remove(f3_yours);
+	with( DLINK_VIA(fred, fred.yours) ) remove(f3);
 
 	verify(validate(fly));
@@ -1079,5 +1073,5 @@
 	mary m3 = {3.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 	insert_last(ml, m1);
 	insert_last(ml, m2);
@@ -1128,12 +1122,11 @@
 	verify(validate(flm));
 
-	diref(fred, fred.mine) f_mine = f`from;
-	remove(f_mine);
-
-	verify(validate(fly));
-	verify(validate(flm));
-
-	assert(! flm`first);
-	assert(! flm`last);
+	with( DLINK_VIA(fred, fred.mine) ) remove(f);
+
+	verify(validate(fly));
+	verify(validate(flm));
+
+	assert( & flm`first == 0p );
+	assert( & flm`last == 0p );
 
 	printYourFreddies(fly`first, fly`last, 0);   // 0.7; 0.7; 0.7; 0.7 (unmodified)
@@ -1168,12 +1161,11 @@
 	verify(validate(flm));
 
-	diref(fred, fred.yours) f_yours = f`from;
-	remove(f_yours);
-
-	verify(validate(fly));
-	verify(validate(flm));
-
-	assert(! fly`first);
-	assert(! fly`last);
+	with( DLINK_VIA(fred, fred.yours) ) remove(f);
+
+	verify(validate(fly));
+	verify(validate(flm));
+
+	assert( & fly`first == 0p );
+	assert( & fly`last == 0p );
 
 	printYourFreddies(flm`first, flm`last, 0);   // 0.7; 0.7; 0.7; 0.7 (unmodified)
@@ -1196,5 +1188,5 @@
 	mary m = {0.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 	insert_last(ml, m);
 
@@ -1207,6 +1199,6 @@
 	verify(validate(ml));
 
-	assert(! ml`first);
-	assert(! ml`last);
+	assert( & ml`first == 0p );
+	assert( & ml`last == 0p );
 
 	// observe f is solo in mine (now unlisted); in yours, it was just traversed
@@ -1256,5 +1248,5 @@
 	verify(validate(flm));
 
-	fred & popped = remove(flm`first);
+	fred & popped = try_pop_front(flm);
 
 	verify(validate(fly));
@@ -1292,5 +1284,5 @@
 	verify(validate(flm));
 
-	fred & popped = remove(fly`first);
+	fred & popped = try_pop_front(fly);
 
 	verify(validate(fly));
@@ -1312,5 +1304,5 @@
 	mary m3 = {3.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 	insert_last(ml, m1);
 	insert_last(ml, m2);
@@ -1321,5 +1313,5 @@
 	verify(validate(ml));
 
-	mary & popped = remove(ml`first);
+	mary & popped = try_pop_front(ml);
 
 	verify(validate(ml));
@@ -1355,5 +1347,5 @@
 	verify(validate(flm));
 
-	fred & popped = remove(flm`last);
+	fred & popped = try_pop_back(flm);
 
 	verify(validate(fly));
@@ -1391,5 +1383,5 @@
 	verify(validate(flm));
 
-	fred & popped = remove(fly`last);
+	fred & popped = try_pop_back(fly);
 
 	verify(validate(fly));
@@ -1411,5 +1403,5 @@
 	mary m3 = {3.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 	insert_last(ml, m1);
 	insert_last(ml, m2);
@@ -1420,5 +1412,5 @@
 	verify(validate(ml));
 
-	mary & popped = remove(ml`last);
+	mary & popped = try_pop_back(ml);
 
 	verify(validate(ml));
@@ -1431,5 +1423,4 @@
 	assert( &popped == &m3 );
 }
-
 
 ////////////////////////////////////////////////////////////
@@ -1450,5 +1441,5 @@
 	mary m3 = {3.7};
 
-	dlist(mary, mary) ml;	assert( ml`isEmpty);
+	dlist(mary) ml;			assert( ml`isEmpty);
 
 	insert_last(ml, m1);	assert(!ml`isEmpty);
@@ -1486,5 +1477,5 @@
 	mary m3 = {3.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 
 	mary &m1r = *0p;
@@ -1588,5 +1579,5 @@
 	mary m1 = {1.7};
 
-	dlist(mary, mary) ml;
+	dlist(mary) ml;
 	mary & mlorigin = ml`elems;
 
