<br><br><div><span class="gmail_quote">On 07/01/2008, <b class="gmail_sendername">mike clemow</b> &lt;<a href="mailto:gelfmuse@gmail.com">gelfmuse@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><div class="gmail_quote"><div><br>Oh, but that&#39;s far weirder!&nbsp; I would not have expected that to be legal.&nbsp; So &quot;now&quot; is a strange animal indeed, having traits of both time and duration...<br><br>Actually, it looks like any time type divided by a duration returns a float.&nbsp; hrm...&nbsp; I wouldn&#39;t have guessed.&nbsp; 
</div></div></blockquote><div><br>Yes, and it gets curiouser and curiouser.<br><br>Any time (including now) divided by a duration returns a float yet a time divided by a float returns a &quot;complaint&quot;. I&#39;m not certified mathematician but this seems wrong-ish to me.
<br><br>I mean; if X/Y = Z then (and only then) X/Z = Y or we lose reflexivity in multiplication. In a way that&#39;s what we do if we need to devide now by a duration, then multiply the result by one in order to &quot;cast time to duration&quot;.
<br><br>I agree that what I suggested *is* rather implicit but I&#39;d also say that cast is a explicit way to do this. I don&#39;t think I&#39;d call it more implicit then the (potential) data-loss in casting from a float to a int.
<br><br><br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>I still don&#39;t like the idea that a time can be cast as a duration-from-vm-start, however, a &quot;birth&quot; keyword makes sense.&nbsp; Consider this:
<br><br>2::second =&gt; now;&nbsp; // is kind of like &quot;for the next two seconds&quot; or &quot;two seconds from now&quot;, etc.
</div></div></blockquote><div><br>&lt;snip&gt;<br>I agree, but consider Ge said &quot;2::second =&gt; now&quot; is shorthand for &quot;2::second +=&gt; now&quot;, I agree with this though I too use the shorthand.<br><br>
&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>your way is clever:<span class="q"><br>&nbsp;//strongly typed meets strongly timed :¬p
<br>//at least it runs and works....<br>now - ((now /samp)::samp) =&gt; time birth;<br><br></span>But I feel like you shouldn&#39;t have to do that.</div></div></blockquote><div><br>Thank you and here we agree completely (as opposed to 90% elsewhere :¬) ). I would say that this trick is downright abusive and I&#39;d argue that it involves a implicit, hidden, cast.
<br>&nbsp;</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>&nbsp; I see how you could easily abstract this using functions, but a keyword for the time that the VM started seems like it would be easier, more global, etc.
<br><br>at least, this returns a -1:<span class="q"><br><br>now - ((now /samp)::samp) =&gt; time birth;<br></span>&lt;&lt;&lt;(birth - 2::second) /2::second&gt;&gt;&gt;;<br><br>I was worried...&nbsp; :)</div></div></blockquote>
<div><br><br>:¬)<br><br>the sky isn&#39;t falling but considering some of my mathematical games above I think &quot;time&quot; isn&#39;t as developed as a datatype as duration is. I would -at this stage- probably recommend developing it further with a more clear relationship between time and duration. From there on keywords and/or casting might make more sense. At that stage either or both might turn out to be needed or make sense.
<br><br>To put it in different words; I see issues here but I realise proposing a cast option was a hasty call to make. At least it made for a good start of a debate and I&#39;m still not convinced yet it&#39;s a bad idea per-sé. 
<br></div><br>Yours,<br>Kas.<br></div>