The fact that we're using Rlist* as the type for min and max is causing some pretty contrived code here.  Having to put value into temp_list, having to destroy min or max and recreate it with a new value.  Ick.