together with two natural transformations $$\begin{array}{l}
{\varepsilon}: \forall {\{X\}}.\, (\Sigma s: S.\, P\, s \to X) \to X\\
{\varepsilon}\, (s, v) = v\, ({\mathsf{o}}\, {\{s\}})\\
{\delta}: \forall {\{X\}}.\, (\Sigma s: S.\, P\, s \to X) \to \Sigma s: S.\, P\, s \to \Sigma s': S.\, P\, s'\to X\\
{\delta}\, (s, v) = (s, \lambda p.\, (s {\mathrel{\downarrow}}p, \lambda p'.\, v\, (p {\mathrel{\oplus}}{\{s\}}\, p')))
\end{array}$$ The directed container laws ensure that the natural transformations ${\varepsilon}$, ${\delta}$ make the counit and comultiplication of a comonad structure on $D$.

Intuitively, the counit extracts the data at the root position of a data-structure (e.g., the head of a non-empty list), the comultiplication, which produces a data-structure of data-structures, replaces the data at every position with the sub-data-structure corresponding to this position (e.g., the corresponding suffix or cyclic shift).

The interpretation ${\llbracket h \rrbracket^\mathrm{dc}}$ of a morphism $h$ between directed containers $E = (C, {{\mathrel{\downarrow}}}, {\mathsf{o}}, {{\mathrel{\oplus}}})$, $E' = (C', {\mathrel{\downarrow'}},
{\mathsf{o'}}, {\mathrel{\oplus'}})$ is defined by ${\llbracket h \rrbracket^\mathrm{dc}} = {\llbracket h \rrbracket^\mathrm{c}}$ (using that $h$ is a container morphism between $C$ and $C'$). The directed container morphism laws ensure that this natural transformation between ${\llbracket C \rrbracket^\mathrm{c}}$ and ${\llbracket C' \rrbracket^\mathrm{c}}$ is also a 