Working with ShiftJIS in Haskell is an exercise in patience. It took me a few hours to figure out the proper way to convert ShiftJIS into text that I could use in Haskell. After a bit of hacking, I figured out an easy way to do it by converting ShiftJIS ByteStrings into Data.Text's UTF8 implementation. This small ShiftJIS library for Haskell has functions for converting between ShiftJIS and UTF8, reading/writing ShiftJIS files, and downloading websites that are in the ShiftJIS encoding. You can get the library here.