F# domain modeling with tests