Hi all,<br><br>I'm trying to  implement a function that returns the shorter  one of&nbsp;two given lists,<br>something like<br>shorter :: [a] -&gt; [a] -&gt; [a]<br>such&nbsp;that shorter [1..10] [1..5]  returns [1..5],<br>and it's okay for shorter [1..5] [2..6] to return either.
<br><br>Simple, right?<br><br>However,   it becomes difficult when   dealing with infinite lists, for example,<br>shorter [1..5] (shorter [2..] [3..])<br>Could this     evaluate to [1..5]? I haven't&nbsp;found&nbsp;a  proper implementation.
<br><br>Again it's ok for shorter [2..] [3..] to return  whatever that can solve the&nbsp;above problem correctly.<br>An infinite list    could work, I guess, but I don't know how.<br><br>Thanks for any help.<br><br>