nd non-caching chains, specifically designed for MH</p><p>For caching chains, the result of the Chain's function is cached for each value of the parent element
that is queried. This cache is infinitely large.</p><p>For non-caching chains, we only &quot;cache&quot; two resulting elements of the chain. The cache is actually
a 2-element stack, where the top of the stack represents the most recent element for the chain, and the
 bottom of the stack represents the last element (and parent value) used. This is pr