I swapped the argument order for snapshot and a few other functions.&nbsp; For instance, <br><br>&nbsp;&nbsp;&nbsp; -- old type<br>&nbsp;&nbsp;&nbsp; snapshot :: Event a -&gt; Behavior b -&gt; Event (a,b)<br><br>&nbsp;&nbsp;&nbsp; -- new type<br>&nbsp;&nbsp;&nbsp; snapshot :: Behavior b -&gt; Event a -&gt; Event (a,b)<br>
<br>So that &#39;snapshot b&#39; is an event transformer.&nbsp; This change makes other operations work out nicely when partially applied.<br><br>Take careful note of the argument and result orders.&nbsp; I&#39;m not sure what&#39;s most memorable.&nbsp; I&#39;ve kept to the convention that the additional info is in the second half of the result.&nbsp; Also a bit odd:<br>
<br>&nbsp;&nbsp;&nbsp; snapshotWith :: (a -&gt; b -&gt; c) -&gt; Behavior b -&gt; Event a -&gt; Event c<br><br>The complete list of argument-swappedfns: snap, snapshot, snapshot_, snapRemainderE, splitE (watch out).<br><br>Libraries affected: reactive, reactive-glut, reactive-fieldtrip.<br>
<br>&nbsp; - Conal<br><br>