# 前言

时间回到2011年初，我做了一些泛型编程(generic programming）的实验，最后这些实验形成了shapeless，我绝不会想到五年后它居然会成为一个被如此广泛使用的类库。非常感谢那些信任我并将shapeless用到项目中的人，这种信任对任何开源项目来说都是巨大的动力。同样感谢多年来对项目做出巨大贡献的人，截止写此书时共有81人，如果没有他们的帮助shapeless就不会这么有趣和有用了。

尽管有这些积极因素，shapeless也经历了所有开源项目的通病：缺乏完善的、准确的、易懂的文档。尽管我知晓这一点，但还是没能抽出时间在这方面做些事情，责任全在我。Travis Brown在Stack Overflow的英勇的表现以及很多人的讨论和实践，从一定程度上弥补了这一缺陷（此处我要特别指出Sam Halliday的“Shapeless for Mortals”）。

但是Dave Gurnell改变了这一切，他为我们写了这本精彩的书，此书介绍了shapeless的最重要的应用：通过泛型编程实现类型类（type class）派生。为了写此书他搜集了大量的代码和文档，征求了我的意见，并从一堆杂乱无章的文档和叙述中抽丝剥茧，使之变的清晰、简明、实用。幸运的是他也很好的实现了我的一贯主张——shapeless是一个非常简单的类库，它体现了一系列简单的原则。 感谢Dave，你为我们做了一件伟大的事情。

Miles Sabin

shapeless的作者
