Re:http://www.sampou.org/cgi-bin/haskell.cgi?HowTo%3aQuickCheck&l=jp

接頭辞 prop_ には何の意味もない。適当な名前 (i_want_to_check x = ... ) でもよい。ただし、引数が最低一つは必要で、かつ、引数の型を "types" という関数で教える必要がある(テストできる型に型推論できる場合はその必要はないが、しかしテストできる型が何かなんて最初は知らないので...)。

"types"という関数にも何の意味もないです。型を一つに決めないと、どの型のTestableのインスタンスとしてランダムデータを生成すればいいのかわからない、というだけのことなので、型宣言でもかまいません。

prop_head :: Int -> Bool
prop_head x = x == head [x]