Make a TreeMaker that will result in an extractor call specified by extractor
the next TreeMaker (here, we don't know which it'll be) is chained after this one by flatMap'ing
a function with binder nextBinder over our extractor's result
the function's body is determined by the next TreeMaker
(furthermore, the interpretation of flatMap depends on the codegen instance we're using).
An optimized version of ExtractorTreeMaker for Products.
implements the run-time aspects of (§8.
(switchEmission: StringAdd).self
(switchEmission: StringFormat).self
(switchEmission: ArrowAssoc[SwitchEmission]).x
(Since version 2.10.0) Use leftOfArrow instead
(switchEmission: Ensuring[SwitchEmission]).x
(Since version 2.10.0) Use resultOfEnsuring instead