<p><br>
On Oct 9, 2011 11:17 PM, &quot;David Barbour&quot; &lt;<a href="mailto:dmbarbour@gmail.com">dmbarbour@gmail.com</a>&gt; wrote:<br>
&gt; If you really want the input type to be part of the Filter type definition, you&#39;ll need to use arrows instead of monads.</p>
<p>I wouldn&#39;t say that. You just need an extra type parameter. That doesn&#39;t mean it can&#39;t be a monad. In fact, wrapping ReaderT around the existing representation gives us exactly the monad we probably want. That said, I think it is likely to be more useful in this context either as it is or as an arrow. I just want to point out that it can still be a monad even if it is an arrow.</p>

<p>- Jake</p>