-------------------------------------------------------------------------
--
--         Main.hs
--
--  The main module of the Huffman example
--
--  (c) Addison-Wesley, 1996-2011.
--
-------------------------------------------------------------------------

-- The main module of the Huffman example

module Main (main, codeMessage, decodeMessage, codes, codeTable ) where

import Types    ( Tree(Leaf,Node), Bit(L,R), HCode , Table )
import Coding   ( codeMessage, decodeMessage ) 
import MakeCode ( codes, codeTable )


IO ()
main = String -> IO ()
forall a. Show a => a -> IO ()
print String
decoded


-- Examples
-- ^^^^^^^^

-- The coding table generated from the text "there is a green hill".                            

tableEx :: Table
tableEx :: Table
tableEx = Tree -> Table
codeTable (String -> Tree
codes String
"there is a green hill")

-- The Huffman tree generated from the text "there is a green hill",
-- from which tableEx is produced by applying codeTable.

treeEx :: Tree
treeEx :: Tree
treeEx = String -> Tree
codes String
"there is a green hill"

-- A message to be coded.

message :: String
message :: String
message = String
"there are green hills here"

-- The message in code.

coded :: HCode
coded :: HCode
coded = Table -> String -> HCode
codeMessage Table
tableEx String
message

-- The coded message decoded.

decoded :: String
decoded :: String
decoded = Tree -> HCode -> String
decodeMessage Tree
treeEx HCode
coded