receiveResponse :: LibXenVChan -> IO (Either String Response)--Response
receiveResponse chan = do
                       eithershared <- receiveShared chan
                       case (eithershared) of
			(Left err) -> return (Left err)
			(Right (WResponse resp)) -> return (Right resp)
			(Right x) -> return (Left ("Received unexpected type. I expected a 'Response' but here is what I received instead: " ++ (show x)))
			 
--EVALUATION-------------------------------------
receiveResponse :: LibXenVChan -> IO (Either String Response)
receiveResponse chan = do
                       eithershared <- receiveShared chan
                       case (eithershared) of
			(Left err) -> return (Left err)
			(Right (WResponse resp)) -> return (Right resp)
			(Right x) -> return (Left ("Received unexpected type. I expected a 'Response' but here is what I received instead: " ++ (show x)))
			 
--EVALUATION-------------------------------------
receiveResponse chan = do
                       eithershared <- receiveShared chan
                       case (eithershared) of
			(Left err) -> return (Left err)
			(Right (WResponse resp)) -> return (Right resp)
			(Right x) -> return (Left ("Received unexpected type. I expected a 'Response' but here is what I received instead: " ++ (show x)))
			 
--EVALUATION-------------------------------------