Algebraically modelling object-orientated programs. - Justin Biddle (2006)