Brent is right. Separating functions is nicer to read and cleaner. Plus it enhances testability.<br><br>&gt; I wonder why the redeclared type variables cannot match those of legSome?<br>Try to put a totally wrong type to subsome, like<br>

subsome :: Int<br>and tell us from the error what type is actually inferred.<br><br><div class="gmail_quote">2012/1/3 Yucheng Zhang <span dir="ltr">&lt;<a href="mailto:yczhang89@gmail.com">yczhang89@gmail.com</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="im">On Wed, Jan 4, 2012 at 12:44 AM, Yves Parès &lt;<a href="mailto:limestrael@gmail.com">limestrael@gmail.com</a>&gt; wrote:<br>


&gt; Remove subsome type signature. You are redeclaring type variables which<br>
&gt; obviously cannot match those of legSome.<br>
&gt; This cannot work without scoped type variables (and ad-hoc foralls to bring<br>
&gt; them to scope, of course).<br>
<br>
</div>That subsome type signature is from the original code.<br>
<br>
I wonder why the redeclared type variables cannot match those of legSome?<br>
<br>
<br>
<br>
<br>
p.s. I just realized that my changed code missed the line:<br>
<div class="im HOEnZb"><br>
&gt; import qualified Data.Map as M<br>
<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>