Memoization Ordering

The memoizations are now stored in their respective evaluation order.
New Hashable class determines how the evaluation instance is saved.