[Haskell-cafe] Polymorphic QuickCheck arguments
Sebastiaan Visser
sfvisser at cs.uu.nl
Tue Jun 17 07:17:07 EDT 2008
On Jun 17, 2008, at 11:53 AM, Hugo Pacheco wrote:
> Hi all,
>
> There is something about polymorphic tests in QuickCheck that I do
> not understand.
>
> If you write the simplest dummy test function
>
> tst :: a -> Bool
> tst _ = True
>
> and evaluate it we get
>
> > verboseCheck tst
> 0:
> ()
> 1:
> ()
> ...
> How come did the polymorphic value a get instanciated to ()? Is
> this done via the Testable type class?
> Could someone please explain this to me? I'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 "default
> type" whenever polymorphic types occur, would be awesome.
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.
You can, for example, try this:
verboseCheck (tst :: [Int] -> Bool)
> Cheers,
> hugo
More information about the Haskell-Cafe
mailing list