rafael accepted this revision. rafael added a comment. This revision is now accepted and ready to land. I really like this! Please just make sure it builds with gcc given the "using packed =". http://reviews.llvm.org/D18130