BULK is a very-high-level persistent programming language and environment for prototyping and implementing database applications. BULK provides sets and sequences as primitive type constructors, provides high-level operations on them, and allows programmers to de ne application-oriented bulk types, e.g. syntax trees, bond portfolios, or (geographic) maps. BULK encourages separation of correctness and e ciency concerns by distinguishing logical type from representation. BULK supports a three-step development paradigm consisting of (i) prototyping, (ii) intensive analysis, optimization, and data structure selection by the compiler to achieve e ciency, and (iii) if e ciency is still inadequate, hot-spot re nement CGK89]. (In hot-spot re nement developers remove performance bottlenecks by providing the compiler with moreinformation,by directing its optimizatione orts, or by re-implementation.) Step (i) focuses on correctness, steps (ii) and (iii) on e ciency. Our goal is an implementation...