--  Copy the input to the output (like 'cat' does) using Data.Text

--  Data.Text: a time and space-efficient representation of Unicode
--  text in constrast to the conceptutally simple, primitive, and
--  ubiquous "String" as list of characters.  A small memory
--  footprint may be obtrains by using Data.Text.Lazy.

{-
    $ ghc -Wall main1T.hs
    $ ./main1T < main1T.hs
 -}

module Main where

import qualified Data.Text as T                   ; avoid name classes with prelude
import qualified Data.Text.IO as TextIO (interact)

{-
   id              :: a -> a                      ; polymorphic identity function
   TextIO.interact :: (T.Text -> T.Text) -> IO () ; the input and the output is text
 -}

main :: IO()
main = TextIO.interact id

--  ------------For GNU Emacs ------------
--  Local Variables:
--  compile-command: "ghc -Wall main1T.hs"
--  End: