Unfolding Abstract Datatypes - Gibbons, J (Mathematics of Program Construction, 2008)