anchor.diff:  	case {Operand1, Operand2} of
   		{{number, 0}, _} -> {number, 0};
   		{_, {number, 0}} -> {number, 0};
  -		{{number, 1}, {number, 1}} -> 1;
  +		{{number, 1}, {number, 1}} -> {number, 1};
   		{{number, 1}, _} -> Operand2;
   		{_, {number, 1}} -> Operand1;
   		{{number, -1}, {number, -1}} -> {number, 1};
  
positive.code: 		division -> Operand1/Operand2
  	end.
  
  compile_impl(Expression, Stack) ->
  	NewStack = case Expression of 
  		{number, Value} -> [Value|Stack];
  		{Operator, Operand1} -> 
  			[Operator|compile_impl(Operand1, Stack)];
  		{Operator, Operand1, Operand2} -> 
  			[Operator|compile_impl(Operand2, compile_impl(Operand1, Stack))]
  	end,
  	NewStack.
  	
  tokenize([]) ->
  	[];
  
negative.code: 		{number, Value} -> {number, -Value};
  		_ -> {unary_minus, SimplifiedExpression}
  	end;
  simplify_impl({if_then_else, Operand1, Operand2, Operand3}) ->
  	SimplifiedOperand1 = simplify_impl(Operand1),
  	case SimplifiedOperand1 of
  		{number, 0} -> simplify_impl(Operand3);
  		{number, _} -> simplify_impl(Operand2);
  		_ -> 
  			{if_then_else, SimplifiedOperand1, 
  				simplify_impl(Operand2), simplify_impl(Operand3)}
  	end;
  simplify_impl({Operator, Operand1, Operand2}) ->
  	SimplifiedOperand1 = simplify_impl(Operand1),
  	SimplifiedOperand2 = simplify_impl(Operand2),
  