News for hackers. Stuff that matters.
Re:Measuring GC latencies in Haskell, OCaml, Racket by evincarofautumn on Monday December 05, 2016 @08:23AM (#13105139)
They used qualified imports:

    import qualified Data.ByteString as ByteString
    import qualified Data.Map.Strict as Map
So everything from “Data.ByteString” has to be prefixed with “ByteString.”

In real-world code, depending on conventions, you’d probably add unqualified imports for the type names to avoid the needless duplication:

    import Data.ByteString (ByteString)
    import Data.Map.Strict (Map)
    import qualified Data.ByteString as ByteString
    import qualified Data.Map.Strict as Map

    type Chan = Map Int ByteString

    pushMsg =
      …
        let inserted = Map.insert …
Re:Measuring GC latencies in Haskell, OCaml, Racket by buckie on Monday December 05, 2016 @09:24AM (#13105481)
Also, `ByteString` as the qualified name is a bit unusual but it probably is helpful for clarifying what's going on for people unfamiliar with Haskell. I'm more used to seeing:

    import Data.ByteString (ByteString)
    import qualified Data.ByteString as BS
    import qualified Data.ByesString.Lazy as BSL
    import qualified Data.ByteString.Char8 as BSC