class_docstr: Exploits cons-hashing to do implicit common subexpression elimination.
  
  :param Interpretation base_interpretation: The interpretation to memoize.
  :param dict cache: An optional temporary cache where results will be
      memoized.
class_docstr_tok: ["Exploits","cons-hashing","to","do","implicit","common","subexpression","elimination",".",":","param","Interpretation","base_interpretation",":","The","interpretation","to","memoize",".",":","param","dict","cache",":","An","optional","temporary","cache","where","results","will","be","memoized","."]
code: def interpret(self, cls, *args):
      key = self.make_hash_key(cls, *args)
      value = self.cache.get(key)
      if value is None:
          self.cache[key] = value = self.base_interpretation.interpret(
              cls, *args
          )
      return value
  
imports: from abc import ABC, abstractmethod
  from collections.abc import Hashable
  from contextlib import ContextDecorator, contextmanager
  from timeit import default_timer
  from .None import instrument
  from .interpreter import get_interpretation, pop_interpretation, push_interpretation
  from .registry import KeyedRegistry
  from .util import get_backend
label_desc: Use image node_id 3 for calling the Memoize obj's underlying member method code with example usage: obj.interpret(cls) and returns: value