src/memoize.js
function () {
			var args = slice.call(arguments),
				constraint = options.args_map.getOrPut(args, function() {
					return new Constraint(function () {
						return getter_fn.apply(options.context, args);
					});
				});
			return constraint.get();
		}
function () {
			var args = slice.call(arguments),
				constraint = options.args_map.getOrPut(args, function() {
					return new Constraint(function () {
						return getter_fn.apply(options.context, args);
					});
				});
			return constraint.get();
		}
function ( ) { var args = slice . call ( arguments ) , constraint = options . args_map . getOrPut ( args , function ( ) { return new Constraint ( function ( ) { return getter_fn . apply ( options . context , args ) ; } ) ; } ) ; return constraint . get ( ) ; }
When getting a value either create a constraint or return the existing value
When getting a value either create a constraint or return the existing value