docs: function max_info_climber(in_curr_list, in_curr_term_dist,
  				  in_max_hist, in_enc_hist){
  
  	    // We either bootstrap (first run) or pull them in.
  	    var curr_list = in_curr_list || [];
  	    // curr_list must be a list.
  	    if( ! bbop.core.is_array(curr_list) ){ curr_list = [curr_list]; }
  	    var curr_term_distance = in_curr_term_dist || 0;
  	    var max_hist = in_max_hist || {};
  	    var encounter_hist = in_enc_hist || {};
  
  	    function update_info_for(update_item, update_distance){
  		if( ! encounter_hist[update_item] ){
  		    // ll('first time encountering: ' +
  		    //    update_item + ', @:' + update_distance);
  		    // Note that we have encountered this node before.
  		    encounter_hist[update_item] = 1;
  		    // Our first distance is the current one!
  		    max_hist[update_item] = update_distance;
  		}else{
  		    // ll('have seen before: ' + update_item + '...' +
  		    //    max_hist[update_item] + '/' + update_distance);
  		    // If we're seeing this node again, but with a
  		    // separate history, we'll add the length or our
  		    // history to the current, but will not recur in
  		    // any case (we've been here before).
  		    if( max_hist[update_item] < update_distance ){
  			// ll('   new high at current: ' + update_distance);
  			max_hist[update_item] = update_distance;
  		    }else{
  			// ll('   keeping current: ' + max_hist[update_item]);
  		    }
  		}
  	    }
  
  	    // //
  	    // ll('new set @' + curr_term_distance + ' looks like: ' +
  	    //    bbop.core.dump(curr_list));
  
  	    // Only work if we have things in our list.
  	    if( curr_list && curr_list.length > 0 ){
  
  		// Process everything in the list.
  		each(curr_list,
  		     function(item){
  			 update_info_for(item, curr_term_distance);
  		     });
  
  		// Collect the parents of everything in the list.
  		var next_round = {};
  		each(curr_list,
  		     function(item){
  			 each(anchor.get_parent_nodes(item),
  			      function(p){
  				  var pid = p.id();
  				  next_round[pid] = true;
  			      });
  		     });
  		var next_list = bbop.core.get_keys(next_round);
  
  		// Increment our distance.
  		curr_term_distance++;
  
  		// //
  		// ll('future @' + curr_term_distance + ' looks like: ' +
  		//    bbop.core.dump(next_list));
  
  		// Recur on new parent list.
  		max_info_climber(next_list, curr_term_distance,
  				 max_hist, encounter_hist);
  	    }
  
  	    // Return the collected histories.
  	    return max_hist;
  	}