Another pattern that seems strange is that when staging, types seem to be really helpful to automate the plumbing. I.e. even if you have n stages, each stage is actually 2 stages: functions and types. What I don't understand is how this interplay can be made explicit. So it seems I have this ping-pong game going between typed and untyped aqpproaches.