JavaOne 2012: Build Your Own Type System for Fun and Profit