Advice on language interoperability

Suppose I have some classes defined in one language, and I would like to use them in classes written in another language.

It seems that Unity separates your script files into 3 separate assemblies, one for each language. My guess is that doing this would require referencing one assembly from another. Is there a way to do this?

Update:

It turns out it wasn’t hard at all to add a reference. Now that I have, code completion and etc. works fine. However, the unity compiler still doesn’t recognize the types defined in the other assembly.

you can not reference them
what you need to do is get the stuff in the other language into a previous build step (so its in the first pass project of its language in the solution)

folders that end there are plugins for example and standard assets

check the advanced manual on compilation order for the full list of directories