More on make_counter: - Consider the evaluation of (define c1 (make_counter)). This is handle with the frame-state-environment model as follows: - Add a new frame to the current environment - Put count_value in the new frame - Return a function associated with name c1 that contains access (via a pointer or something equivalent) to the environment that contains the new frame. Subsequent execution of c1 is always done in this new environment. All other code has no access to the new frame. Cache functions: - A cache function is a function f where (f x) always evaluates to the same value (dependent only on the value x), but the efficiency may vary from call to call. This optimization is often created by introducing some type of table of values, access of which can be faster than recomputation. More on Binary Rational intervals: - Consider the following implementation of operations using binratintvl: binratintvl --> ratintvl ---(operation)--> ratintvl --> binratintvl That is, convert your input binary rational intervals to a regular rational interval, perform the operation, and convert the resulting operation back to a binary rational interval. This is a plausible method since every binary rational interval is a rational interval. This method provides a good means of comparing efficiencies of rational and binary rational intervals.