shapeless-2.2.1 released — now supporting Scala 2.12.0-M1

A new shapeless release, just in time for Scala Days Amsterdam. This is primarily a maintenance release, but a few small enhancements found their way in too.

I’m especially grateful to Alexandre Archambault for fixing a macro hygiene bug in Generic1 that tripped me up earlier this week. I’d planned to fix it the following day, but woke up to a pull request without even having mentioned it — I don’t think that there’s anything much more rewarding in FOSS than things like this. Thanks Alexandre.

I’m also delighted with how much less effort releases are now thanks to the automation contributed by Johnny Everson — this release following so soon after 2.2.0 is at least partly thanks to that.

Finally, Scala 2.12.0-M1 is now an officially supported release target, and the Travis CI build is now publishing snapshots for Scala 2.10.x, 2.11.x and 2.12.0-M1 for the JVM and Scala 2.10.x and 2.11.x for Scala.js.

Many thanks to everyone who contributed … release notes follow …


This is the final release of shapeless-2.2.1. These release notes provide a summary of changes since shapeless 2.2.0. shapeless 2.2.1 should be source and binary compatible with shapeless 2.1.0+, and for migration from shapeless 2.0.0 the earlier migration guide from shapeless 2.0.0 to 2.1.0 is still applicable and is available on the shapeless wiki.

Contributors for shapeless 2.2.1 are,

Many thanks to all of you and everyone else who has contributed ideas, enthusiasm and encouragement.

This is primarily a bugfix release. The most significant changes are,

  • Fixed a macro hygiene bug in Generic1 (thanks to Alexandre Archambault)

  • Several fixes and improvements in HList and Coproduct rotations (thanks to Alexandre Archambault).

  • Added a prepend operation for Coproducts. Prepend of an HList to HNil no longer rebuilds the entire HList (thanks to Alexandre Archambault).

  • Added a method to transform the value at the focus of a Zipper (thanks to Peter Schmitz)

  • Added an example illustrating the use of a coproduct Generic representation of an ADT to model a safe enumeration.

  • shapeless is now cross built for Scala 2.12.0-M1.

  • Snapshot builds are now published for Scala.js by Travis CI

  • shapeless in now built with SBT 0.13.8.

shapeless is an exploration of type class and dependent type based generic programming in Scala.

Find the project online,

Some articles on the techniques used have appeared here

shapeless is an Open Source project under the Apache License v2.