Strings vs Text vs ByteString

Haskell has five string types: String, strict and lazy Text, and strict and lazy ByteString.

Read Eat Haskell String Types for Breakfast for an explanation of differences between them.