class_docstr: This mixin is used for languages that provide the exponentiation operation in a form
  of an infix operator. Such languages inlcude Haskell, F#, R and others.
  
  The operator used by default is "**", but it can be overriden by setting an appropriate
  value in `pow_operator`.
code: def interpret_pow_expr(
      self,
      expr,
      is_left_from_parent=None,
      parent_precedence=None,
      is_parent_associative=None,
      **kwargs,
  ):
      base_result = self._do_interpret(
          expr.base_expr,
          is_left_from_parent=True,
          parent_precedence=expr.precedence,
          **kwargs,
      )
      exp_result = self._do_interpret(
          expr.exp_expr,
          is_left_from_parent=False,
          parent_precedence=expr.precedence,
          is_parent_associative=expr.is_associative,
          **kwargs,
      )
      return self._cg.infix_expression(
          left=base_result,
          right=exp_result,
          op=self.pow_operator,
          wrap=self._wrap_infix_expr(
              expr,
              is_left_from_parent=is_left_from_parent,
              parent_precedence=parent_precedence,
              is_parent_associative=is_parent_associative,
          ),
      )
  
imports: import math
  import sys
  from collections import namedtuple
  from m2cgen import ast
  from m2cgen.interpreters.interpreter import BaseToCodeInterpreter
label_desc: Use image node_id 1 for calling the PowExprInfixMixin obj's underlying member method code with example usage: obj.interpret_pow_expr(expr, is_left_from_parent, parent_precedence, is_parent_associative) and returns: self