 -----------------------------------------------------------------------------

 xInitialise :: [String] -> Int -> Int -> IO ()
 xInitialise str x y = 
	 _ccall_ haskXBegin x y (0::Int)	`seqPrimIO`
	 return ()

 xHandleEvent :: IO ()
 xHandleEvent = 
	 _ccall_ haskHandleEvent		`thenPrimIO` \ n ->
	 case (n::Int) of
		 0 -> return ()
		 _ -> error "Unknown Message back from Handle Event"

 xClose :: IO ()
 xClose =
	  _ccall_ haskXClose		`seqPrimIO`
	  return ()

 xCls :: IO ()
 xCls = 
	 _ccall_ haskXCls		`seqPrimIO`
	 return ()

 xDrawLine :: Int -> Int -> Int -> Int -> IO ()
 xDrawLine x1 y1 x2 y2 =
	 _ccall_ haskXDraw x1 y1 x2 y2	`seqPrimIO`
	 return ()

 ----------------------------------------------------------------

 usleep :: Int -> IO ()
 usleep t =
	 _ccall_ usleep t		`seqPrimIO`
	 return ()
