This document discusses combinatory logic and techniques for evaluating combinator terms in a stingy manner. It begins by introducing common combinators like S, K, I, B, C, and Y. It then discusses approaches for eliminating abstraction in combinator terms to reduce size, including Shönfinkel's approach. The document also discusses techniques for stingy evaluation of combinator terms using one-bit reference counting and optionally acyclic heaps to further reduce terms in a memory-efficient manner. Finally, it notes that the author is interested in efficient evaluation techniques for dependently typed languages that integrate memoization and address concerns of unification and substitution.