anchor.diff:  		}
   	}
   
  -	// Return the last stack item
  -	// ( a -- )
  -	int Pop() {
  -		if (this.size > 0) {
  -			this.size--;
  -			return this.data[size];
  +	/// Copies i to the top of the stack.
  +	///
  +	/// Pick(0) is equivalent to Dup() and Pick(1) is equivalent to Over().
  +	/// ( a b c ... i -- i a b c ... i )
  +	void Pick(int i) {
  +		if (this.size > i) {
  +			this.data[size] = this.data[size++ - 1 - i];
   		}
   	}
   
  -	// Add an additional stack item
  -	// ( -- a )
  +	/// Returns the last stack item.
  +	/// ( a -- )
  +	int Pop() {
  +		if (this.size > 0) {
  +			return this.data[--size];
  +		}
  +	}
  +
  +	/// Adds an additional stack item.
  +	/// ( -- a )
   	void Push(int i) {
   		if (this.size < this.maxSize) {
  -			this.data[size] = i;
  -			this.size++;
  +			this.data[size++] = i;
   		}
   	}
   
  
positive.code: 		}
  	}
  
  	// Exchange the top two stack items
  	// ( a b -- b a )
  	void Swap() {
  		if (this.size > 1) {
  			int t = this.data[this.size - 1];
  
negative.code: 		}
  	}
  
  	/// Copies the first (top) stack item below the second stack item.
  	/// ( a b -- b a b )
  	void Tuck() {
  		if (this.size > 1) {
  			this.data[this.size] = this.data[this.size - 1];
  			this.data[this.size - 1] = this.data[this.size - 2];
  			this.data[this.size - 2] = this.data[this.size++];
  		}
  	}
  
  	/// Returns the representation of the stack.
  	Print() {
  		return this.data.sublist(0, this.size);
  	}
  }
  