On Mon, Mar 15, 2010 at 4:23 PM, Marc Weber <span dir="ltr">&lt;<a href="mailto:marco-oweber@gmx.de">marco-oweber@gmx.de</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Chris,<br><br><div class="im">
&gt; - a good URL routing library (where you can only produce and link to valid urls)<br>
</div>Think about this twice: You can&#39;t recompile bigger CMS systems each time<br>
you add a link.<br></blockquote><div><br></div><div>What do you mean by &#39;adding a link&#39; in a bigger CMS. To me that sounds like something which is done by a user interacting with the app via the browser? I don&#39;t see that as being in conflict with producing only valid urls...  It seems like the system would have two classes of URLs. Ones that are statically known at compile time, and ones that only exist due to the state of the live database. </div>
<div><br></div><div>If you want to add new code that refers to a specific page that was created in the live database -- then you do have a  potential issue, since you can not guarantee at compile time that the dynamically created page will exactly be there..</div>
<div><br></div><div>The URL routing library ensures that when you are referring to &#39;static&#39; urls in your code, you only generate valid urls. And the app runtime ensures that dynamically created urls are valid. And when you want to have static code which refers to a page which may or may not exist.. you can still probably benefit from a good URL router..</div>
<div><br></div><div>data CmsUrl =</div><div>   LoginPage</div><div> | Homepage</div><div> | ASpecificDynamicLink</div><div> | DynLink String</div><div><br></div><div>do u &lt;- showURL ASpecificDynamicLink</div><div>     ...</div>
<div><br></div><div>cms :: CmsURL -&gt; URLT CmrURL IO ()</div><div>cms LoginPage = ....</div><div>cms Homepage = ...</div><div>cms ASpecificDynamicLink = cms (Dynlink &quot;somelink&quot;)</div><div>cms (DynLink str) = ...</div>
<div><br></div><div>What am I missing?</div><div><br></div><div>- jeremy</div><div><br></div><div> </div></div>