Temporal meta-programming: treating time as a spatial dimension.