code: function RelationalOperator(options, types, evalfunc)
  {
  	mod_assert.object(options, 'options');
  	mod_assert.object(options.names, 'options.names');
  	mod_assert.arrayOfString(types, 'types');
  	mod_assert.func(evalfunc, 'evalfunc');
  
  	var names = options.names;
  
  	this.names = names;
  	this.types = types.slice(0);
  	this.validate = krillPrimValidateRel;
  	this.printCStyle = krillPrimPrintRelCStyle;
  	this.printLDAP = krillPrimPrintRelLDAP;
  	this.eval = evalfunc;
  }
docs: /*
  Definitions of operators.  Operators have three fields: "name" (used when
  translating to a C-syntax string), "validate" (which validates an input
  predicate of this type), and "print" (which converts an entire predicate to
  the corresponding C-syntax string).