This module implements a general Memoizer aspect for memoizing (caching) method results.
@author Ernesto Posse
A memoizer aspect decorates methods with actions to remember previously computed values for the methods and the given arguments to avoid recomputing them.
Warning: it is not thread-safe, therefore if a method is executed in multiple threads, the cached results may be inconsistent.
Try to return the previously computed value for the method, the given object and given arguments, if it has already been computed and stored in the cache table. If it has not been computed, create a new entry in the cache table for the method, the given object and given arguments.