{-# LANGUAGE OverloadedStrings,TemplateHaskell #-}
module Main where

import Text.LaTeX
import Text.LaTeX.FunctionTable
import System.Process

short :: LaTeX
short = 
    documentclass [] article
 <> usepackage [] "multirow"
 <> title "A short message"
 <> author "John Short"
 <> document (mconcat 
        [ maketitle 
        , myTable 
        , newline <> newline
        , rendertex myFT
        , newline <> newline
        , "This is a paragraph"
        , newline <> newline
        , rendertex myFT' ])

myTable :: LaTeX
myTable = tabular Nothing [LeftColumn,RightColumn] $ execLaTeXM $ do
    textell $ "true" & "false"
    textell $ lnbk
    textell $ "false" & "true"
    textell $ lnbk
    textell $ "false" & "false"

myFT :: FunctionTable LaTeXLI
myFT = makeTable           "Letter" $ do
        cell "a"           "A"
        branch "b" $ do
            cell "c"       "C"
            cell "\\neg c" "B"
    -- Condition (Cols 1) $ ("a", Cell "A") :| [("b", Condition (Cols 1) $ ("c",Cell "C") :| [("not c",Cell "B")])]

myFT' :: FunctionTable LaTeXLI
myFT' = makeTable               "x" $ do
        cell "C0"               "x_0"
        branch "\\neg C0" $ do
            branch "C1" $ do
                cell "C2"       "x_2"
                cell "\\neg C2" "x_3"
            branch "\\neg C1" $ do
                cell "C2"       "x_4"
                cell "\\neg C2" "x_5"

main :: IO ()
main = do
    renderFile "table.tex" short
    rawSystem "pdflatex" ["table.tex"]
    return ()

-- main = $(runIO (renderFile "table.tex" short >> rawSystem "pdflatex" ["table.tex"]) >> [| return () |])
-- main = renderFile "short.tex" short