{- | module: Main description: Decode a UTF-8 byte stream on standard input license: MIT maintainer: Joe Leslie-Hurd stability: provisional portability: portable -} module Main ( main ) where import qualified Data.Word as Word import OpenTheory.Unicode import qualified Unicode info :: Either Word.Word8 Unicode -> String info (Left b) = "invalid byte " ++ show b info (Right c) = "valid unicode character " ++ show (unUnicode c) ++ " " ++ Unicode.toString c display :: Either Word.Word8 Unicode -> IO () display c = putStrLn (info c) main :: IO () main = do cs <- Unicode.decode mapM_ display cs