Introduction to General Purpose Allocation