I'm a Nim newbie, so someone else can chime in here but the rules for overloading resolution are detailed here -- [https://nim-lang.org/docs/manual.html#overloading-resolution](https://nim-lang.org/docs/manual.html#overloading-resolution).
For purposes of illustration can you illustrate how you'd solve this is another "serious programming language" that allows overloading? I know Haskell doesn't allow function overloading (though I wouldn't be surprised if there was an extension to do so). I seem to recall that Idris does but I've not had a chance to dive into Idris in any depth.
