Better interoperability between different numerical types by using operator overloading and implicit casts conversions