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 …