anchor.diff:  	}
   	*/
   
  -	/*
  -	void Roll(n) {
  +	/// TODO: Rotates i+1 items on the top of the stack.
  +	/// Roll(2) is equivalent to Rot() and Roll(1) is equivalent to Swap().
  +	/// ( a b c ... i --  )
  +	void Roll(int i) {
  +		if (this.size > 0 && i > 0) {
  +			var t = this.data.sublist(this.size - 1 - i, this.size);
  +
  +			/*
  +			// convert to loop
  +			this.data[this.size - 1] = t[0];
  +			this.data[this.size - 2] = t[2];
  +
  +			this.data[this.size - 3] = t[1]; Last
  +			*/
  +
  +			// Do the last one first
  +			// this.data[this.size -1 -i] = t[1];
  +		}
   	}
  -	*/
   
  -	// Rotate the top three stack entries.
  -	// ( a b c -- b c a )
  +	/// Rotates the top three stack entries.
  +	/// ( a b c -- b c a )
   	void Rot() {
   		if (this.size > 2) {
   			var t = this.data.sublist(this.size - 3, this.size);
  
positive.code: 		}
  	}
  
  	// Returns the representation of the stack
  	List() {
  		return this.data.sublist(0, this.size);
  	}
  }
  
negative.code: 		}
  	}
  
  	/// Rotates the top three stack entries Counter-Clockwise.
  	/// ( a b c -- c a b )
  	void RotCC() {
  		if (this.size > 2) {
  			var t = this.data.sublist(this.size - 3, this.size);
  