F# translation 90%