Not sure if you are still interested.
It seems to me that the compiler gives a warning when it is not sure whether the method call is going to destroy the state of the original instance (this should come mainly from any library outside of F #).
An explicit copy of the value into a variable, in my case, often mitigates the warning. For instance:
open System
let DirSeparator = Path.DirectorySeparatorChar.ToString()
let ExplicitCopy = let x = Path.DirectorySeparatorChar in x.ToString()
let Alternative = sprintf "%c" Path.DirectorySeparatorChar
source
share