You kind of forget the fact that the language has first class functions. That alone qualifies it as a functional programming language in every sense of the MF word. It also has interface and (like you mention CSP). Its more than a strictly procedural language. I'm afraid I am going to have to standby what I said.