Yes, I think that's natural. The problem now I see is with testing - if every representation is (lazily / eventually) optimized, how do we run the tests? Or do you mean that the optimization is delayed until materialization (i.e. toList in this current mockup or toPipe in Scalding) ?