@@ -0,0 +1,29 @@
1+{-# LANGUAGE BangPatterns #-}
2+
3+import System.Environment (getArgs)
4+import qualified Data.Text.Lazy.IO as T
5+import qualified Data.Text.Lazy as T
6+import qualified Data.Text.Lazy.Encoding as T
7+import qualified Data.ByteString.Lazy.Char8 as B
8+import qualified Data.ByteString.Char8 as BS
9+import qualified Data.ByteString.Lazy.Search as B
10+
11+string :: FilePath -> IO ()
12+string file = readFile file >>= print . length
13+
14+text :: FilePath -> IO ()
15+text file = T.readFile file >>= print . T.length
16+
17+textBS :: FilePath -> IO ()
18+textBS file = B.readFile file >>= print . T.length . T.decodeUtf8
19+
20+bytestring :: FilePath -> IO ()
21+bytestring file = B.readFile file >>= print . B.length
22+
23+main = do
24+ (name : file : _) <- getArgs
25+ case name of
26+ "bs" -> bytestring file
27+ "string" -> string file
28+ "text" -> text file
29+ "textBS" -> textBS file