An Introduction to Dependent Typing in Scala - Advanced

8th December 2016 in London at Business Design Centre

There are 57 other SkillsCasts available from Scala eXchange 2016

Please log in to watch this conference skillscast.

607081127 640

Dependent typing is at the forefront of much programming language research, not least the DOT calculus being planned for the future of Scala. But what is dependent typing exactly? Why is it important, and what can actually be done with it now? Why should the average Scala developer care?

Dependent typing allows you to prove the correctness of our programs in ways that you couldn’t otherwise do. Complex data structures and algorithms are prone to error-ridden implementations - getting them right is hard. With dependent typing, you can encode invariants in a way the compiler can check for you, easing the burden of implementation and preventing bugs.

Scala already has good support for dependent typing, perhaps more than any other mainstream language. Whilst the syntax is not trivial, learning to use dependent typing techniques is easier than you might think, and it is immediately applicable to many areas.


An Introduction to Dependent Typing in Scala - Advanced

Nick Pollard

I started learning Scala almost 4 years ago, quickly getting to grips with the more functional aspects and developing an appetite for the type-level programming styles it enables. I have been writing Scala in Industry full-time since early 2013, and pushed Scala heavily at my previous organisation (Scotiabank). I am active in the Scala open source community, especially with the Typelevel organization.