<html><head></head><body><div style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div><span>Hi,</span></div><div><span><br></span></div><div><span>I am unable to compile the below code.</span></div><div><span><br></span></div><div><span>import Network.Socket hiding(recv) </span></div><div><span>import Network.Socket.ByteString as S (recv) </span></div><div><span>import qualified Data.ByteString.Lazy.Char8 as Char8 </span></div><div><span><br></span></div><div><span>getMessage :: Socket -> IO String </span></div><div><span>getMessage sock = Char8.unpack <$> S.recv sock 8888</span><br></div><div><span><br></span></div><div>It gives the below error.</div><div><br></div><div><span><div>Couldn't match type ‘Data.ByteString.Internal.ByteString’</div><div> with ‘ByteString’</div><div>NB: ‘ByteString’ is defined in ‘Data.ByteString.Lazy.Internal’</div><div> ‘Data.ByteString.Internal.ByteString’</div><div> is defined in ‘Data.ByteString.Internal’</div><div> Expected type: IO ByteString</div><div> Actual type: IO Data.ByteString.Internal.ByteString</div><div><br></div><div>In the second argument of ‘(<$>)’, namely ‘recv sock 8888’</div><div>In the expression: unpack <$> recv sock 8888</div><div>In an equation for ‘getMsg’:</div><div> getMsg sock = unpack <$> recv sock 8888</div><div><br></div><div>Can somebody tell me how I can return the IO String using Network.Socket.ByteString.recv?</div><div><br></div><div>Best Regards,</div><div>Dinesh.</div></span></div><div><span><br></span></div><div><span><br></span></div></div></body></html>