This makes perfect sense. Over winter break, I've been thinking about how to introduce more precise invariant reasoning in my intro course, since we *talk* about many of these properties (particularly essential is associativity in the context of MapReduce). QuickCheck was the missing link for me.
Note that heaps are often more interesting than trees in that insertion and then removal of an element does not necessarily yield the (structurally) same heap as went in: basically, the heap invariant is weaker, so it allows more latitude in implementation and therefore requires a more detailed equality checker (ie, relations rather than functions). I had already mapped out an assignment *solely* on testing-harness creation. So introducing QuickCheck just after that would be just perfect: the harness is already built in AND it's generic! Shriram _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev
