code: def eager_reduce_exp(op, arg, reduced_vars):
      # x.exp().reduce(ops.add) == x.reduce(ops.logaddexp).exp()
      log_result = arg.arg.reduce(ops.logaddexp, reduced_vars)
      if log_result is not normalize.interpret(
          Reduce, ops.logaddexp, arg.arg, reduced_vars
      ):
          return log_result.exp()
      return None
  
file_path: funsor/funsor/joint.py
imports: import math
  from collections import OrderedDict
  from functools import reduce
  from typing import Tuple, Union
  from multipledispatch import dispatch
  import funsor.ops
  from funsor.cnf import Contraction, GaussianMixture
  from funsor.delta import Delta
  from funsor.domains import Bint
  from funsor.gaussian import Gaussian, align_gaussian
  from funsor.interpretations import eager, moment_matching, normalize
  from funsor.ops import AssociativeOp
  from funsor.tensor import Tensor, align_tensor
  from funsor.terms import Funsor, Independent, Number, Reduce, Unary
  from funsor.typing import Variadic
label_desc: Use image node_id 4 for calling a global function with example usage: eager_reduce_exp(op, arg, reduced_vars) and returns: None, log_result