stream-programming-and-monoidal-categories