Recently I've been adjusting the F# compiler to be able to produce debug symbols for the SSCLI - a release will be available shortly. This will make F# fully usable as an SSCLI language, both on non-Windows platforms and on Windows without having a Microsoft .NET Framework SDK installed.
On the way I spotted what I think is a minor bug in the SSCLI's unmanaged API for writing debug symbols: it seems to me that in ildbsymbols/symwrite.cpp the class variable m_importer is not released (i.e. an m_import->Release() us needed to match the QI on this object). The only effect this appears to have is that the import scope is not closed correctly under some circumstances, which for me was a problem as my PE writer later reopens the binary for writing to insert the debug dictionary entry in the PE header, and the opening the file for writing was failing. Thanks Don