jonocarroll, How have I not made this connection before??? #rstats' S3 dispatch mechanism is strikingly similar to #rust's trait system (provided your mental model is sufficiently flexible and can compare function call vs method, that distinction perhaps being the reason I hadn't).
Barely a handful of minutes into https://youtu.be/EXd-bHyk0dM and I had to pause to contemplate.
With that said, #julia's approach is even nicer; multiple dispatch with no ceremony; just write out the definition for each signature.