I think this snippet should be moved into `Macros.scala` under the name `macroExpandUnapply`. This would also make it unnecessary to expose previously private parts of the macro engine.