Thanks Stephen for your response.
With the help of #haskell I was actually able to find my answer:

import Char
import Numeric
import Data.Bits
import Data.Binary.Put
import Data.Binary.IEEE754
import qualified Data.ByteString.Lazy as LBS

main = do putStrLn . show $ map getBits (LBS.unpack . runPut $ putFloat64be 4.123)

getBits i = showIntAtBase 2 (chr . (48+)) i ""


--- On Fri, 12/11/09, Stephen Tetley <stephen.tetley@gmail.com> wrote:

From: Stephen Tetley <stephen.tetley@gmail.com>
Subject: Re: [Haskell-beginners] Printing the bits of an Int|Double
To: "M Xyz" <functionallyharmonious@yahoo.com>
Cc: beginners@haskell.org
Date: Friday, December 11, 2009, 9:29 AM

Further...

If you need double precision you might have to do it yourself.

In absence of comments in the code I posted, the algorithm I used for
single precision is from here:

http://www.utdallas.edu/~cantrell/ee6481/lectures/float_comp.pdf

Eventually I'll get around to double precision, but not soon.

Best wishes

Stephen