etHostname :: IO String
getHostname = do
  let size = 256
  allocaArray0 size $ \ cstr -> do
    throwErrnoIfMinus1_ "getHostname" $ c_gethostname cstr (fromIntegral size)
    peekCString cstr

getHostname :: IO String
getHostname = do
  let size = 256
  allocaArray0 size $ \ cstr -> do
    throwErrnoIfMinus1_ "getHostname" $ c_gethostname cstr (fromIntegral size)
    peekCString cstr
getHostname = do
  let size = 256
  allocaArray0 size $ \ cstr -> do
    throwErrnoIfMinus1_ "getHostname" $ c_gethostname cstr (fromIntegral size)
    peekCString cstr