<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>