Workshop: Shapeless for Mortals

10th December 2015 in London at Business Design Centre

There are 56 other SkillsCasts available from Scala eXchange 2015

Please log in to watch this conference skillscast.

548591608 640

Learn the basic building blocks of shapeless and get a practical introduction to generic programming by writing general functionality for any sealed trait and its case class implementations. This workshop is aimed at you if you are a competent Scala developers with little or no shapeless experience, and may also appeal to intermediate shapeless developers.

The case study is spray-json-shapeless, a library that uses shapeless to derive serialisers for consumption by spray-json. You will learn about concepts such as Hipster.Aux, Generic, HList, Coproduct, Lazy and Strict, as well as some caveats (i.e. bugs in the Scala compiler) that can restrict what is possible. You will be involved in applying what you have learnt to S-Expression serialisation, which is exactly how the ENSIME SWANKY protocol works.

Time permitting, you will also take a tour of lesser-known features of shapeless that are being used by ENSIME to solve problems at compile time (that are often solved with verbose runtime reflection).

Code and setup instructions are available in this Github repo


Workshop: Shapeless for Mortals

Sam Halliday

Sam Halliday is a chartered mathematician and software engineer with a love for technology innovation and free software (ENSIME, spark/netlib-java, etc).