Data.Text 最初の一歩

import Data.Text
import qualified Data.Text.IO as TI
import Cinnamon.Ucs (ucs4ToSjis)

-- pack :: String -> Text
txt  = pack "日本語"
kana = pack "にほんご"

main = do 
  putStrLn $ ucs4ToSjis "日本語"                     -- > 日本語
  putStrLn $ ucs4ToSjis $ unpack $ pack "日本語"     -- > 日本語

  -- singleton :: Char -> Text
  putStrLn $ ucs4ToSjis $ unpack $ singleton 'あ'    -- > あ

  putStrLn $ ucs4ToSjis $ unpack $ cons 'あ' empty   -- > あ
  putStrLn $ ucs4ToSjis $ unpack $ cons 'あ' txt     -- > あ日本語
  putStrLn $ ucs4ToSjis $ unpack $ snoc txt 'あ'     -- > 日本語あ
  case uncons txt of
    Nothing     -> putStrLn "Nothing"
    Just (ch,t) -> do putStrLn $ ucs4ToSjis [ch]         -- > 日
                      putStrLn $ ucs4ToSjis $ unpack $ t -- > 本語
  putStrLn $ ucs4ToSjis $ unpack $ append txt kana       -- > 日本語にほんご