One thing about F# is that the ordering of compilation units is essential. You need to list your files in the order they are to be compiled because you cannot have circular dependencies between the units. This leads to making better decisions about code most of the time.
It is still possible to have circular dependencies. Either by including the mutually related types in the same code file separated by the "and" keyword, or by using signature files to define the type signatures ahead of their implementation (which work similar to header/implementation files in C, C++ etc).