<div>Simon,</div><div><br></div><div>While I don&#39;t have any hands on experience with Lift&#39;s approach to templating it looks a lot like <a href="http://asp.net" target="_blank">asp.net</a> databinding/templates and from my experience with that toolset it ends up being a cumbersome solution to the problem of separating controller and view. I don&#39;t necessarily think mixing code into your views is the &quot;one true way&quot; either, but what you sacrifice in controller code clarity seems to outweigh any gains from separating the two so strictly.</div>

<div><br></div><div>As an example from <a href="http://liftweb.net/docs/getting_started/mod_master.html#x1-130002.7">http://liftweb.net/docs/getting_started/mod_master.html#x1-130002.7</a> : </div><meta charset="utf-8"><div>
<br></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">lift:TD</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">list</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">all_id</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">=</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">all_todos</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19004r2"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">div</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">id</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">=</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">all_todos</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19005r3"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">div</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">Exclude</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">done</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:exclude</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">div</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19006r4"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">ul</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19007r5"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:list</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19008r6"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">li</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19009r7"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:check</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">input</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">type</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">=</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">checkbox</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:check</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19010r8"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:priority</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19011r9"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">select</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">option</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">1</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">option</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">select</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19012r10"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:priority</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19013r11"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:desc</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">To</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">Do</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:desc</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19014r12"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">li</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19015r13"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo:list</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19016r14"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">ul</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19017r15"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">div</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><br>
</span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="label" style="margin-right: 0.5em; "><a id="x1-19018r16"></a></span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&lt;</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">/</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">lift:TD</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">list</span></span><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&gt;</span></span></div>
<div><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "><br></span></span></div><div><span class="Apple-style-span" style="font-family: monospace; font-size: medium; white-space: nowrap; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "><span class="Apple-style-span" style="font-weight: normal; font-size: medium; "><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">private</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">def</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">doList</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">reDraw</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">:</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">()</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">=&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">JsCmd</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">)(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">html</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">:</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">NodeSeq</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">):</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">NodeSeq</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">=</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19041r2"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">toShow</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19042r3"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">flatMap</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">td</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">=&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19043r4"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">bind</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">todo</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">,</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">html</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">,</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19044r5"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">check</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">-&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">ajaxCheckbox</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">td</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">done</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">,</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19045r6"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">v</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">=&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">{</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">td</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">done</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">v</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">).</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">save</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">reDraw</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">()}),</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19046r7"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">priority</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">-&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19047r8"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">ajaxSelect</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">ToDo</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">priorityList</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">,</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">Full</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">td</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">priority</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">toString</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">),</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19048r9"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">v</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">=&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">{</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">td</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">priority</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">v</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">.</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">toInt</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">).</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">save</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">reDraw</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">()}),</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19049r10"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">desc</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">&quot;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="lstinline"></span><span class="pcrb8t-" style="font-size: 12px; font-weight: bold; font-family: monospace; ">-&gt;</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">desc</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">(</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">td</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">,</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">reDraw</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">)</span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><br>
<span class="label" style="margin-right: 0.5em; "><a id="x1-19050r11"></a></span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; "> </span><span class="pcrr8t-" style="font-size: 12px; font-weight: bold; ">))</span></span></span></span></div>
<div><br></div><div>In the above you&#39;ll notice that the bind has direct reference to elements in the template, so I think its fair to say you&#39;ve moved some of your template mixing from view to the controller. From the docs</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: Times; font-size: medium; ">&quot;This method calls <span class="pcrr8t-x-x-109" style="font-weight: bold; ">toShow </span>to get the list of to-do items to show. Using the <span class="pcrr8t-x-x-109" style="font-weight: bold; ">flatMap </span>method, we iterate over each to-do item and <span class="pcrr8t-x-x-109" style="font-weight: bold; ">bind</span>ing the item to the incoming html.&quot;</span></div>
<div><br></div><div>In addition I think the result is something thats harder for people to grok. When reading loops and control flow constructs from a programming language in a template its immediately familiar. When binding data into a template, at the very least, the code you need to reference exists in two separate places but interacts very very intimately. </div>
<div><br></div><div>Again, I&#39;m not saying that the current practice of writing code into the template should be the final solution. You could make the case that Haskell is better at parsing and handling text for whatever purpose (databinding or otherwise) than almost any other language and that, as a result, it would be better equipped to handle controller side manipulation of xhtml. In addition this might allow you to better leverage the type system.</div>
<div><br></div><div>Personally I think if your going to be mucking around with html/xhtml a bit of haskell won&#39;t make it much worse :D</div><div><br></div><div></div><div>All,</div><div><br></div><div>To contribute something positive here, I would really like to see HAML become the goto template system of choice for haskell web dev if only because the syntax meshes well (indentation, terseness) and there&#39;s an enormous sea of web developers already familiar with its use and best practice. One less thing to worry about when learning webdev in haskell.  </div>
<div><br></div><div>Best</div><div><br></div><div>John</div><div><br></div><div>Disclaimer: I am an experienced web developer but I&#39;m relatively new to Haskell. If there is some aspect of the language, unknown to me, that makes the Lift templating/databinding system much more effective feel free to ignore.<br>

<div><div><br><div class="gmail_quote">On Sat, Apr 3, 2010 at 11:36 AM, Simon Hengel <span dir="ltr">&lt;<a href="mailto:simon.hengel@wiktory.org" target="_blank">simon.hengel@wiktory.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

&gt; My point is: we should not try to build one big framework. Instead, I<br>
&gt; propose that we build a set of smaller libraries that each do one<br>
&gt; thing very well. Some of these libraries might be designed to work<br>
&gt; together.<br>
<br>
I absolutely agree with that.<br>
<br>
&gt; I personally think MVC is a perfect fit for the web: model code<br>
&gt; handles data storage, view code handles HTML/JSON/XML and the<br>
&gt; controller coordinates between these.<br>
<br>
Have you read about the &quot;View First&quot; approach of Lift[1]? While I do not<br>
like the monolithic approach of Lift, I really like that specific<br>
aspect. I&#39;d not narrow my view on &quot;Rails-Style MVC&quot; right now.<br>
<br>
Cheers,<br>
Simon<br>
<br>
[1] <a href="http://wiki.liftweb.net/index.php?title=Lift_View_First" target="_blank">http://wiki.liftweb.net/index.php?title=Lift_View_First</a><br>
_______________________________________________<br>
web-devel mailing list<br>
<a href="mailto:web-devel@haskell.org" target="_blank">web-devel@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/web-devel" target="_blank">http://www.haskell.org/mailman/listinfo/web-devel</a><br>
</blockquote></div><br></div></div></div>