P.S. adding implicit conversion other way around is possible via `alias this` but I don't think it is a valid behavior. (as common type of (`long`, `int`, `short`) is `long`)