Spreadsheets: functional programming for the masses Simon Peyton Jones Margaret Burnett Alan Blackwell.