Conflictos de paquetes de GHC

Estoy tratando de compilar el siguiente código con GHC:

<code>module Test where

import Maybe
import Prelude hiding (null)
import System.IO

null = ()

main :: IO ()
main = putStrLn "Hello, world!"
</code>

Si solo corroghc Test.hs, Yo obtengo:

<code>Could not find module `Maybe'
It is a member of the hidden package `haskell98-2.0.0.1'.
</code>

Así que intentoghc -package haskell98 Test.hs:

<code>Ambiguous module name `Prelude':
  it was found in multiple packages: base haskell98-2.0.0.1
</code>

No me parece bien, pero lo intento.ghc -package haskell98 -hide-package base Test.hs:

<code>Could not find module `System.IO'
It is a member of the hidden package `base'.
It is a member of the hidden package `haskell2010-1.1.0.1'.
</code>

Entonces intentoghc -package haskell98 -hide-package base -package haskell2010 Test.hs:

<code>Ambiguous module name `Prelude':
  it was found in multiple packages:
  haskell2010-1.1.0.1 haskell98-2.0.0.1
</code>

¿Cómo compilo este código? Estoy usando GHC 7.4.1.

Respuestas a la pregunta(2)

Su respuesta a la pregunta