+// output ///////////////////////////////////////////////////////////////////
+#expect 14
+#expect 13
+#expect 12
+#expect 11
+
+// program //////////////////////////////////////////////////////////////////
+#ship debug : Debug
+#ship memory : Memory
+#ship fifo : Fifo
+
+// dumb configurations
+debug.in: [*] take, deliver;
+memory.inAddr: [*] take, deliver;
+memory.inData: [*] take, deliver;
+memory.inCount: [*] take, deliver;
+memory.inStride: [*] take, deliver;
+fifo.in: [*] take, deliver;
+
+// addresses and values to initialize the memory with
+1: sendto memory.inAddr.writeMany;
+4: sendto memory.inCount;
+1: sendto memory.inStride;
+11: sendto memory.inData;
+12: sendto memory.inData;
+13: sendto memory.inData;
+14: sendto memory.inData;
+
+// send write-completion tokens to the fifo output
+memory.out:
+ [4] take, notify fifo.out;
+ [*] take, sendto debug.in;
+
+// when the write-completion tokens accumulate, unleash
+// the read addresses
+fifo.out:
+ [4] wait;
+ take, sendto memory.inAddr.readMany;
+
+// read addresses
+4: sendto fifo.in;
+4: sendto memory.inCount;
+-1: sendto memory.inStride;
+