src/set-core.js
function(){
	var clauses = this.clauses = {
		where: {},
		order: {},
		paginate: {},
		id: {}
	};
	this.translators = {
		where: new Translate("where", {
			fromSet: function(set, setRemainder){
				return setRemainder;
			},
			toSet: function(set, wheres){
				return assign(set, wheres);
			}
		})
	};
	var self = this;
	each(arguments, function(arg) {

		if(arg) {
			if(arg instanceof Translate) {
				self.translators[arg.clause] = arg;
			} else {
				assign(clauses[arg.constructor.type || 'where'], arg);
			}
		}
	});
}
function(){
	var clauses = this.clauses = {
		where: {},
		order: {},
		paginate: {},
		id: {}
	};
	this.translators = {
		where: new Translate("where", {
			fromSet: function(set, setRemainder){
				return setRemainder;
			},
			toSet: function(set, wheres){
				return assign(set, wheres);
			}
		})
	};
	var self = this;
	each(arguments, function(arg) {

		if(arg) {
			if(arg instanceof Translate) {
				self.translators[arg.clause] = arg;
			} else {
				assign(clauses[arg.constructor.type || 'where'], arg);
			}
		}
	});
}
function ( ) { var clauses = this . clauses = { where : { } , order : { } , paginate : { } , id : { } } ; this . translators = { where : new Translate ( "where" , { fromSet : function ( set , setRemainder ) { return setRemainder ; } , toSet : function ( set , wheres ) { return assign ( set , wheres ) ; } } ) } ; var self = this ; each ( arguments , function ( arg ) { if ( arg ) { if ( arg instanceof Translate ) { self . translators [ arg . clause ] = arg ; } else { assign ( clauses [ arg . constructor . type || 'where' ] , arg ) ; } } } ) ; }
An `Algebra` internally keeps different properties organized by clause type.
If an object comes in that isn't a clause type, it's assuemd to be a where.

new set.Algebra(Where(),Paginate(),Sort())

@hide
An Algebra internally keeps different properties organized by clause type . If an object comes in that isn t a clause type it s assuemd to be a where .