Haoyi Li recently wrote an excellent blog post on the Visitor pattern, specifically on how Visitors make fusion and streaming really easy. I loved the example of JSON parsing and processing. It is an excellent example of a fundamental duality in PL theory: intrinsic and extrinsic data. Constructing extrinsic data Intrinsic data is what we normally think of as data, a number, say, or an array. Extrinsic data is data described by its functionality. For example, instead of five being then number...