nb: it leaves cases where multiple languages (such as 'c' and 'c++') to make it clear what the full list is. ok brad@