I'm confused about the purpose of the CLS (Common Language Specification) in the .NET Framework.
My understanding is that, with .NET, we can write a library with one language and use it in another language, and that the CLR enables this functionality. I do know that the purpose of the CLS is to fully interact with other objects regardless of the language they were implemented in.
What is the CLS exactly; what is its purpose?