anchor.diff:     * Simplify argument.
      */
     Expression simplify() {
  -    new Root(n, arg.simplify());
  -  }
  -
  -  evaluate(EvaluationType type, ContextModel context) {
  +    return new Root(n, arg.simplify());
  +  }
  +
  +  evaluate(EvaluationType type, ContextModel context) {
  +    //TODO
       throw new UnimplementedError('Can not evaluate n-th root yet.');
     }
   
  
positive.code:   int get domainDimension => args.length;
  
    String toString() => '$name($args)';
    
    /**
     * Returns the full string representation of this function.
     * This could include the name, variables and expression.
     * 
     * Any subclass should decide whether to override this method.
     */
    String toFullString() => toString();
  
negative.code:     }
  
      if (type == EvaluationType.VECTOR) {
        //TODO apply function to all vector elements
        throw new UnimplementedError('Can not evaluate functions on vectors yet.');
      }
  
  