Understanding type inference in Scala is a dark art. How does the compiler sometimes manage to conjure up exactly the correct type from an horrendous tangle of polymorphic method calls, while at other times drawing a blank at something that seems plainly obvious to everyone else?
I'll cover the core ideas of type inference, show what works, what doesn't work, and why. I'll give simple explanations of covariance and contravariance, and the differences between type parameters and type members, then show how you can exploit type inference with some good design and applied cunning.
Jon is a longstanding active member of the Scala community, having first used Scala in 2004. Since then, he's consulted on Scala in small businesses, large corporations and government projects. Since last summer, Jon has been on sabbatical to concentrate on Rapture, his family of open-source libraries and other Scala projects.