Represents the function that will be memoized
Represents a function that, if it yields true, will mark the current cache element represented by K as invalid and rerun the memo function
The map used to store the cache of results to be fed back as a result of memoization
Executes the memoized function if the given input is new, otherwise returns the result from a previous execution.
The input to execute upon
The result of the execution
Clears the internal memoization, allowing new results to be calculated from previously-used input.