title: Has anyone ever compiled a list of the imports needed to avoid the "not polymorphic enough" definitions in Haskell's standard libraries?
body: <p>I have been using Haskell for quite a while. The more I use it, the more I fall in love with the language. I simply cannot believe I have spent almost 15 years of my life using other languages.</p>
  
  <p>However, I am slowly but steadily growing fed up with Haskell's standard libraries. My main pet peeve is the "not polymorphic enough" definitions (<code>Prelude.map</code>, <code>Control.Monad.forM_</code>, etc.). I have a lot of Haskell source code files whose first lines look like</p>
  
  <pre><code>{-# LANGUAGE NoMonomorphismRestriction #-}
  
  module Whatever where
  
  import Control.Monad.Error hiding (forM_, mapM_)
  import Control.Monad.State hiding (forM_, mapM_)
  import Data.Foldable (forM_, mapM_)
  
  {- ... -}
  </code></pre>
  
  <p>In order to avoid constantly hoogling which definitions I should hide, I would like to have a single or a small amount of source code files that wrap this <code>import</code> boilerplate into manageable units.</p>
  
  <p>So...</p>
  
  <ol>
  <li>Has anyone else tried doing this before?</li>
  <li>If the answer to the previous question is "Yes", have they posted the resulting boilerplate-wrapping source code files?</li>
  </ol>