> import System.Environment
> import Data.String.Utils

> ------------------------------

> import Blockquote
> import Boldstar
> import Codeblock
> import Emph
> import Entities
> import Fixlatexchars
> import Fixquotes
> import Headfoot
> import Headings
> import Href
> import Htmltags
> import Inlinecode
> import Latextags
> import List
> import Listcont
> import Para
> import Singleinv
> import Sortinv
> import Stripdelims
> import Uninv
> import Url

> ------------------------------ 

> htmlfixes :: String -> String
> htmlfixes = htmlh1         .
>             htmlh2         .
>             htmlh3         .
>             htmlhref       .
>             htmlurl        .
>             htmll          .
>             htmli          .
>             htmlbold       .
>             htmlemph       .
>             htmlverb       .
>             htmlblock      .
>             htmlverbatim

> ------------------------------

> latexfixes :: String -> String
> latexfixes =  latexh1       .
>               latexh2       .
>               latexh3       .
>               latexhref     .
>               latexurl      .
>               latexl        .
>               latexi        .
>               latexbold     .
>               latexemph     .
>               latexverb     .
>               latexblock    .
>               latexverbatim

> ------------------------------

> htmlout :: [Char] -> String
> htmlout =  htmlq           .
>            htmlqq          .
>            htmlp           .
>            stripdelims     .
>            uninv           .
>            para            .
>            htmlfixes       .
>            sortinv         .
>            singleinv       .
>            emph            .
>            hrefs           .
>            urls            .
>            headings        .
>            list            .
>            -- listcont    .
>            boldstar        .
>            blockquote      .
>            markquotes      .
>            codeblock       .
>            markblocks      .
>            inlinecode      .
>            fixents         .
>            fixquotes

> ------------------------------

> latexout :: [Char] -> String
> latexout = latexq          .
>            latexqq         .
>            latexp          .
>            stripdelims     .
>            uninv           .
>            latexfixes      .
>            fixlatexchars   .
>            sortinv         .
>            singleinv       .
>            emph            .
>            hrefs           .
>            urls            .
>            headings        .
>            list            .
>            -- listcont        .
>            boldstar        .
>            blockquote      .
>            markquotes      .
>            codeblock       .
>            markblocks      .
>            inlinecode      .
>            fixquotes

------------------------------

> gettitle :: String -> [Char]
> gettitle = (dropWhile (== ' ')) .
>            (replace "=" ""   ) .
>            head                .
>            lines

> ------------------------------

> main :: IO ()
> main = do
>   [f] <- getArgs
>   let lhead = latexhead
>   let lfoot = latexfoot
>   let hhead = htmlhead
>   let hfoot = htmlfoot
>   let latex = replace ".txt" ".tex"  f
>   let html  = replace ".txt" ".html" f
>   putStrLn "About to generate:"
>   putStrLn latex
>   putStrLn html
>   s <- readFile f
>   let title = gettitle s
>   let t = "***TITLE***"
>   putStrLn title
>   writeFile  latex  lhead
>   appendFile latex (latexout s)
>   appendFile latex  lfoot
>   writeFile  html  (replace t title hhead)
>   appendFile html  (htmlout s)
>   appendFile html   hfoot

> ------------------------------
