Specifikace: Huffmanovo kódování

Už dlhšie ma zaujímalo funkcionálne programovanie a v poslednej dobe som sa
začal učiť programovací jazyk Haskell. Preto by som si rád vyskúšal
vytvoriť v ňom aj nejaký užitočný program. Zvolil som si jednoduchú
implementáciu Huffmanovho kódovania.

Čo by mal robiť samotný program:
-- Skomprimovať ľubovoľný vstupný súbor pomocou Huffmanovho kódovania.
-- Z komprimovaného súboru vyčítať Huffmanov strom a následne súbor
odkomprimovať.
-- Zaujímavé dátové štruktúry (halda, stromy) si chcem implementovať sám
(aby som mal príležitosť naučiť sa pracovať s Haskellovým typovým systémom)