haskell - "Ambiguous type variable" after qualified import
===

I have a little problem to understand an error message in haskell.

For instance:
>import qualified Data.Map as M

>test = M.empty

This code runs as it should do without getting any error message.

The output looks like:
>*Main> test

>fromList []

But if I try something like that 
>import qualified Data.Map as M

>test = do print M.empty

I get an error message like this
>Ambiguous type variable `k0' in the constraint:

>      (Show k0) arising from a use of `print'

>    Probable fix: add a type signature that fixes these type variable(s)

>    In a stmt of a 'do' block: print M.empty

>    In the expression: do { print M.empty }

>    In an equation for `test': test = do { print M.empty }

So I think it has something to do with the print statement.

But if I try it in the console (ghc)
>Prelude Data.Map> print empty

>fromList []

everything works fine.

So I hope someone can explain me where the problem is.

Thanks in advance,

jimmy
