The Standard Scala FAQ page describes implicit conversions as: "If one calls a method m on an object o of a class C and that class C does not support method m, then Scala compiler will look for an implicit conversion from C type to something that does support m method".
The idea is clear: it's a synthetic behavior (using a method) that we're forcing on instances of a particular type, and these behaviors (methods) aren't a part of the defined type. It's like we have a library with certain functionalities already available and we want to give some add-on functionality to a certain type from the library. Think about it—this is powerful. Having the ability to add on a functionality for a particular type is itself powerful. ...