     subExpression: ->
       new SubExpression(@expression, @expression_index + 1)
 
+  # TODO rewrite this in a functional style
   class SubExpression
     constructor: (@expression, @at)->
       @subexpression = @findSubexpression()

        subexpression_parts

    removeFromExpression: ->
      @expression.splice(@at, @i)

    eval: ->
      (new ExpressionEvaluation(@subexpression)).results()

      subexpr = expression.subExpression()
      evaluated = subexpr.eval()
      subexpr.removeFromExpression()

      evaluated

  class_mixer(LeftParenthesis)
