Haskell allows using qualified names:
import qualified Data.ByteString as S
s = S.concat ["1", "234", "56"]
Identifier S.concat wrong colored as type (or data constructor), because it starts from capital letter. But right is coloring as function (value). Rule is that identifier with dots inside should be colored accoring to capitality of the last word: S.Module2.String3 - color as type (Capital S), X.Submodule.uncompress - as value (u is not capital).