This brings up the question: Can concepts be differentiated from language?
Two quite different examples: first, a very practical one. This is of vital importance in teaching computing. Programming languages come and go, and to be reasonably future-proof a programming course must go beyond merely "teaching a programming language" and bring out concepts. Some evidence that concepts can be differentiated from language is seen in the graphical Integrated Development Environments (IDEs) for developing object oriented programs. For instance, if you compare those for Java with those for C++ you find that broadly similar diagrammatic metaphors (grab an object, place it somewhere, link it to other objects to handle certain events, etc.) get implemented in rather different ways in different languages. This sounds very like Charles's replacement of talking in his head by pictorial concepts. Its effectiveness in IDEs is indisputable, and it seems to be because the language by itself in some way hobbles your thought processes (cf. Basic programming improved by knowing Pascal). A quite different example is that of foundations, how choice of logic affects what you can recognize as mathematics. But don't get me going on that. Merry Christmas, Steve Vickers.