<div dir="ltr">Hi,<div><br></div><div>we've been debating the usefulness of Monad instances for Stream [2] or homogeneous tuples (fixed-length vectors). The Applicative implementation for them is simply zipping, very useful indeed. The "join" of their Monad instances takes the diagonal of a 2-dimensional plane (finite for tuples, infinite for Stream). (See also [1].)</div><div><br></div><div>The question is, are such monad instances used in the wild? Are they actually useful or interesting for anything?</div><div><br></div><div>[1] <a href="https://mail.haskell.org/pipermail/haskell-cafe/2009-April/thread.html#59079">https://mail.haskell.org/pipermail/haskell-cafe/2009-April/thread.html#59079</a></div><div>[2] <a href="https://hackage.haskell.org/package/Stream-0.4.7.2/docs/Data-Stream.html">https://hackage.haskell.org/package/Stream-0.4.7.2/docs/Data-Stream.html</a></div><div><br></div><div>Thanks</div><div>Petr</div></div>