title: Test.QuickCheck.Monadic: why is assert applied to Bool, not Testable a => a
body: <p>In <a href="http://dl.acm.org/citation.cfm?id=636527"><em>Testing Monadic Code with QuickCheck</em> (Claessen, Hughes 2002)</a>, <code>assert</code> has the type:</p>
  
  <pre><code>assert :: (Monad m, Testable a) =&gt; a -&gt; PropertyM m ()
  </code></pre>
  
  <p>However, in <a href="https://hackage.haskell.org/package/QuickCheck-2.1.0.2/docs/Test-QuickCheck-Monadic.html#v:assert"><strong><code>Test.QuickCheck.Monadic</code></strong></a>, it has the type:</p>
  
  <pre><code>assert :: (Monad m) =&gt; Bool -&gt; PropertyM m ()
  </code></pre>
  
  <p>Why does <code>assert</code> have the latter type in the library?</p>