Implicit classes allow custom methods to be added to existing types, without having to modify their code, thereby enriching types without needing control of the code.
Using implicit types to enrich an existing class is often referred to as an 'enrich my library' pattern.
Restrictions on Implicit Classes