You are right!<div><br></div><div>If I try to compile it, then it complains about a Show instance for a, what in fact forces a&nbsp;monomorphic&nbsp;type signature for t.</div><div><br></div><div>I have found under Test.Quickcheck.Poly a way to generate Int values for a polymorphic type, but because it &nbsp;requires an abstraction Poly a for some type a I do not see how it can improve.</div>
<div><br></div><div>What it concretely states the module is</div><div><pre><span class="comment" style="color: green; "><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;">- This is the basic pseudo-polymorphic object.</span></span></span></pre>
<pre><span class="comment" style="color: green; "><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;">- The idea is you can&#39;t cheat, and use the integer</span></span></span></pre>
<pre><span class="comment" style="color: green; "><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;"></span></span><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;">- directly, but need to use the abstraction.</span></span></span></pre>
<pre><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;">Is it possible to cheat? I would like to...</span></span></pre><pre><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;">Thanks,</span></span></pre>
<pre><span class="Apple-style-span" style="font-family: arial, sans-serif;"><span class="Apple-style-span" style="font-size: small;">hugo</span></span></pre></div><div><br><div class="gmail_quote">On Tue, Jun 17, 2008 at 12:17 PM, Sebastiaan Visser &lt;<a href="mailto:sfvisser@cs.uu.nl">sfvisser@cs.uu.nl</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="Wj3C7c">On Jun 17, 2008, at 11:53 AM, Hugo Pacheco wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
There is something about polymorphic tests in QuickCheck that I do not understand.<br>
<br>
If you write the simplest dummy test function<br>
<br>
tst :: a -&gt; Bool<br>
tst _ = True<br>
<br>
and evaluate it we get<br>
<br>
&gt; verboseCheck tst<br>
0:<br>
()<br>
1:<br>
()<br>
...<br>
</blockquote>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How come did the polymorphic value a get instanciated to ()? Is this done via the Testable type class?<br>
Could someone please explain this to me? I&#39;m not saying it does not make sense, but I would like to understand how it works. Being possible to change this behavior, this is, assign another &quot;default type&quot; whenever polymorphic types occur, would be awesome.<br>

</blockquote>
<br></div></div>
I think it is GHCi that is instantiating the type with (). Try compiling the program, it will probably be rejected by the compiler when you do not specify a concrete type.<br>
<br>
You can, for example, try this:<br>
<br>
verboseCheck (tst :: [Int] -&gt; Bool)<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Cheers,<br>
hugo<br>
</blockquote>
</blockquote></div><br><br clear="all"><br>-- <br><a href="http://www.di.uminho.pt/~hpacheco">www.di.uminho.pt/~hpacheco</a>
</div>