Index: src/tests/avltree/avl.h
===================================================================
--- src/tests/avltree/avl.h	(revision 1e3d5b661a71dbe22595492bdc80be8525be1611)
+++ src/tests/avltree/avl.h	(revision 627f58564ea1659614d187a7110f17db71c41c42)
@@ -19,4 +19,7 @@
 forall(otype T | Comparable(T))
 int ?>?(T t1, T t2);
+
+// xxx - unbound type variable problems when trying to use new instead of create
+// forall( otype T, ttype Params | { void ?{}(T *, Params); } ) T * new( Params p );
 
 forall(dtype T | { void ^?{}(T *); })
Index: src/tests/avltree/avl0.c
===================================================================
--- src/tests/avltree/avl0.c	(revision 1e3d5b661a71dbe22595492bdc80be8525be1611)
+++ src/tests/avltree/avl0.c	(revision 627f58564ea1659614d187a7110f17db71c41c42)
@@ -10,10 +10,2 @@
   return t2 < t1;
 }
-
-forall(dtype T | { void ^?{}(T *); })
-void delete(T * x) {
-  if (x) {
-    ^?{}(x);
-    free(x);
-  }
-}
Index: src/tests/tupleVariadic.c
===================================================================
--- src/tests/tupleVariadic.c	(revision 1e3d5b661a71dbe22595492bdc80be8525be1611)
+++ src/tests/tupleVariadic.c	(revision 627f58564ea1659614d187a7110f17db71c41c42)
@@ -29,10 +29,6 @@
 }
 
-forall(otype T) T * malloc();
-
-forall(otype T, ttype Params | sized(T) | { void ?{}(T *, Params); })
-T * new(Params p) {
-	return ((T*)malloc()){ p };
-}
+forall(otype T, ttype Params | { void ?{}(T *, Params); })
+T * new(Params p);
 
 struct array {
