fsharp ad-hoc polymorphism