code: def c_memo(f):
      name = f.__name__
  
      def f_wrapped(ctx):
          cache = ctx._misc_const_cache
          prec = ctx.prec
          p, v = cache.get(name, (-1, 0))
          if p >= prec:
              return +v
          else:
              cache[name] = (prec, f(ctx))
              return cache[name][1]
  
      return f_wrapped
  
imports: from .functions import defun, defun_wrapped
label_desc: Use image node_id 23 for calling a global function with example usage: c_memo(f) and returns: f_wrapped, unknown, cache