The order in which the files in your project’s fsproj file are listed is important here. You have to set the exact order required under ItemGroup in the fsproj file. For example:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0</TargetFramework>
        <WarnOn>3390;$(WarnOn)</WarnOn>
    </PropertyGroup>

    <ItemGroup>
        <Compile Include="A.fs" />
        <Compile Include="B.fs" />
        <Compile Include="Program.fs" />
    </ItemGroup>
</Project>

Modules defined in B.fs are not going to be open-able in A.fs.