text: /** @constructor */
  function Zop() {
  }
  
  /**
   @class
  */
  Foo = function(id) {
  	// this is a bit twisted, but if you call Foo() you will then
  	// modify Foo(). This is kinda, sorta non-insane, because you
  	// would have to call Foo() 100% of the time to use Foo's methods
  	Foo.prototype.methodOne = function(bar) {
  	  alert(bar);
  	};
  	
  	// same again
  	Foo.prototype.methodTwo = function(bar2) {
  	  alert(bar2);
  	};
  	
  	// and these are only executed if the enclosing function is actually called
  	// and who knows if that will ever happen?
  	Bar = function(pez) {
  	  alert(pez);
  	};
  	Zop.prototype.zap = function(p){
  		alert(p);
  	};
  	
  	// but this is only visible inside Foo
  	function inner() {
  	}
  };
  