How about using + and - prefixes instead of implicit and explicit clause?
\begin{code}
module T where
import Data.Map (Map, (\\))
import qualified Data.Map as M hiding (lookup)
f :: (Ord k) = Map k v - k - Map k v
f m k = m \\ M.singleton k (m M.! k)
\end{code}
the following import command
Probably you need to implement coarbitrary, too.
My ghci session for your code:
$ ghci
GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help
Loading package base ... linking ... done.
Prelude :l t.hs
[1 of 1] Compiling Main ( t.hs, interpreted )
t.hs:4:0:
Warning: No