I'll revert, no problem.

I have one question though: aren't the 3 versions equivalent in term of type checking ? To me there is no such thing as "runtime type checking" and type checking in only effective in checked mode. And I believe that thanks to type inference those 3 versions are strictly equivalent, aren't they ?