Macro joining Thrift structs.

I wanted to extract it as a method - give it a name and argument and return type - because its quite involved piece of code and felt like a function i guess it could be a val

No we just filter out methods on Product that are not case accessors like equals, hashcode.