anchor.diff:      // TODO cancel down/out? - needs equals on literals (and expressions?)!
     }
   
  -
  +  /**
  +   * This method throws an [IntegerDivisionByZeroException],
  +   * if a divide by zero is encountered.
  +   */
     evaluate(EvaluationType type, ContextModel context) {
       var firstEval = first.evaluate(type, context);
       var secondEval = second.evaluate(type, context);
  
positive.code:    * 3. -a / -b = a / b
     * 5. 0 / a = 0
     * 6. a / 1 = a
     *
     * This method throws an IntegerDivisionByZeroException,
     * if a divide by zero is encountered.
     */
    Expression simplify() {
      Expression firstOp = first.simplify();
  
negative.code: 
      // if temp result is not set, we return a multiplication
      if (tempResult == null) {
        tempResult = new Times(firstOp, secondOp);
        return negative ? -tempResult : tempResult;
      }
  
      // else we return the only constant and just check for sign before
  