code: function krillPrimEval(pred)
  {
  	var key, ii;
  
  	key = krillPrimGetKey(pred);
  
  	switch (key) {
  	case 'and':
  		for (ii = 0; ii < pred['and'].length; ii++) {
  			if (!krillPrimEval(pred['and'][ii]))
  				return (false);
  		}
  
  		return (true);
  
  	case 'or':
  		for (ii = 0; ii < pred['or'].length; ii++) {
  			if (krillPrimEval(pred['or'][ii]))
  				return (true);
  		}
  
  		return (false);
  
  	case 'lt':
  	case 'le':
  	case 'gt':
  	case 'ge':
  		mod_assert.ok(typeof (pred[key][0]) == 'number');
  		mod_assert.ok(typeof (pred[key][1]) == 'number');
  		/*jsl:fallthru*/
  	default:
  		mod_assert.ok(key in krillOps);
  		mod_assert.ok(pred[key].length == 2);
  		break;
  	}
  
  	return (krillOps[key].eval(pred[key][0], pred[key][1]));
  }
docs: /*
  Evaluate the given predicate (whose named fields have already been replaced
  with corresponding values) and return whether the boolean expression is true.