What to Leave Implicit
Explore the intricacies of implicit programming in Scala through this keynote address delivered at Scala Days Chicago 2017. Delve into the three I's of Scala - Imports, Inheritance, and Implicits - with a particular focus on the central yet controversial role of implicits. Examine the various aspects of implicits, including their current implementation and potential future developments. Analyze the benefits and challenges associated with implicit programming, covering design principles, implementation strategies, and ergonomic considerations. Learn about implicit classes, extension methods, late trait implementation, and implicit parameters. Discover how implicits can prove theorems, establish context, and implement type classes. Investigate proposed improvements such as lazy implicits, multiple implicit parameter lists, and implicit function types. Gain insights into coherence rules, parametricity, and efficiency considerations. Explore practical applications through examples like the Reader Monad and the Builder Pattern, enhancing your understanding of advanced Scala programming concepts. Read more