Index: src/tests/avltree/avl_test.c
===================================================================
--- src/tests/avltree/avl_test.c	(revision 627f58564ea1659614d187a7110f17db71c41c42)
+++ src/tests/avltree/avl_test.c	(revision dd020c0cdff72537d5b1dffcf6920c72db9d585a)
@@ -36,15 +36,16 @@
 
   // char* -> char*
-  int ?<?(char *a, char *b) {
-    return strcmp(a,b) < 0;
+  struct c_str { char *str; };  // wraps a C string
+  int ?<?(c_str a, c_str b) {
+    return strcmp(a.str,b.str) < 0;
   }
-  tree(char *, char *) * ssmap = create("queso", "cheese");
-  insert(&ssmap, "foo", "bar");
-  insert(&ssmap, "hello", "world");
+  tree(c_str, char *) * ssmap = create((c_str){"queso"}, "cheese");
+  insert(&ssmap, (c_str){"foo"}, "bar");
+  insert(&ssmap, (c_str){"hello"}, "world");
   assert( height(ssmap) == 2 );
 
-  printf("%s %s %s\n", *find(ssmap, "hello"), *find(ssmap, "foo"), *find(ssmap, "queso"));
+  printf("%s %s %s\n", *find(ssmap, (c_str){"hello"}), *find(ssmap, (c_str){"foo"}), *find(ssmap, (c_str){"queso"}));
 
-  remove(&ssmap, "foo");
+  remove(&ssmap, (c_str){"foo"});
   delete(ssmap);
 }
