chip
is defined monadically,
it is equivalent(*) to a simple list traversing function:
Under the assumption that onePacket
has the right properties,
we can prove Separation
with induction over the input packet list,
without reasoning about monadic code.
(*) This equivalence follows directly from the definitions.