Rebuilding OO F# into FP F#