Add packet construction DSL.

This time, not effectual, since functions are only really used
internally
EffM to Eff