In this talk, we settle a classic open question in space-efficient data structures: the number of bits required to encode a key-value retrieval function that supports efficient queries. Along the way, we uncover a surprising phenomenon: the existence of two completely independent problems A and B such that a data structure solving A and B together (with shared memory) can achieve provably better space/time bounds than any pair of data structures solving A and B individually.