diff --git a/Data/LanguageCodes.hs b/Data/LanguageCodes.hs
new file mode 100644
--- /dev/null
+++ b/Data/LanguageCodes.hs
@@ -0,0 +1,747 @@
+module Data.LanguageCodes where
+import Prelude hiding (Ordering(..))
+ 
+data ISO639_1 = AA
+              | AB
+              | AE
+              | AF
+              | AK
+              | AM
+              | AN
+              | AR
+              | AS
+              | AV
+              | AY
+              | AZ
+              | BA
+              | BE
+              | BG
+              | BH
+              | BI
+              | BM
+              | BN
+              | BO
+              | BR
+              | BS
+              | CA
+              | CE
+              | CH
+              | CO
+              | CR
+              | CS
+              | CU
+              | CV
+              | CY
+              | DA
+              | DE
+              | DV
+              | DZ
+              | EE
+              | EL
+              | EN
+              | EO
+              | ES
+              | ET
+              | EU
+              | FA
+              | FF
+              | FI
+              | FJ
+              | FO
+              | FR
+              | FY
+              | GA
+              | GD
+              | GL
+              | GN
+              | GU
+              | GV
+              | HA
+              | HE
+              | HI
+              | HO
+              | HR
+              | HT
+              | HU
+              | HY
+              | HZ
+              | IA
+              | ID
+              | IE
+              | IG
+              | II
+              | IK
+              | IO
+              | IS
+              | IT
+              | IU
+              | JA
+              | JV
+              | KA
+              | KG
+              | KI
+              | KJ
+              | KK
+              | KL
+              | KM
+              | KN
+              | KO
+              | KR
+              | KS
+              | KU
+              | KV
+              | KW
+              | KY
+              | LA
+              | LB
+              | LG
+              | LI
+              | LN
+              | LO
+              | LT
+              | LU
+              | LV
+              | MG
+              | MH
+              | MI
+              | MK
+              | ML
+              | MN
+              | MR
+              | MS
+              | MT
+              | MY
+              | NA
+              | NB
+              | ND
+              | NE
+              | NG
+              | NL
+              | NN
+              | NO
+              | NR
+              | NV
+              | NY
+              | OC
+              | OJ
+              | OM
+              | OR
+              | OS
+              | PA
+              | PI
+              | PL
+              | PS
+              | PT
+              | QU
+              | RM
+              | RN
+              | RO
+              | RU
+              | RW
+              | SA
+              | SC
+              | SD
+              | SE
+              | SG
+              | SI
+              | SK
+              | SL
+              | SM
+              | SN
+              | SO
+              | SQ
+              | SR
+              | SS
+              | ST
+              | SU
+              | SV
+              | SW
+              | TA
+              | TE
+              | TG
+              | TH
+              | TI
+              | TK
+              | TL
+              | TN
+              | TO
+              | TR
+              | TS
+              | TT
+              | TW
+              | TY
+              | UG
+              | UK
+              | UR
+              | UZ
+              | VE
+              | VI
+              | VO
+              | WA
+              | WO
+              | XH
+              | YI
+              | YO
+              | ZA
+              | ZH
+              | ZU
+              deriving (Show, Read, Eq, Enum, Ord)
+toChars (code)
+  = case (code) of
+        (AA) -> ('a', 'a')
+        (AB) -> ('a', 'b')
+        (AE) -> ('a', 'e')
+        (AF) -> ('a', 'f')
+        (AK) -> ('a', 'k')
+        (AM) -> ('a', 'm')
+        (AN) -> ('a', 'n')
+        (AR) -> ('a', 'r')
+        (AS) -> ('a', 's')
+        (AV) -> ('a', 'v')
+        (AY) -> ('a', 'y')
+        (AZ) -> ('a', 'z')
+        (BA) -> ('b', 'a')
+        (BE) -> ('b', 'e')
+        (BG) -> ('b', 'g')
+        (BH) -> ('b', 'h')
+        (BI) -> ('b', 'i')
+        (BM) -> ('b', 'm')
+        (BN) -> ('b', 'n')
+        (BO) -> ('b', 'o')
+        (BR) -> ('b', 'r')
+        (BS) -> ('b', 's')
+        (CA) -> ('c', 'a')
+        (CE) -> ('c', 'e')
+        (CH) -> ('c', 'h')
+        (CO) -> ('c', 'o')
+        (CR) -> ('c', 'r')
+        (CS) -> ('c', 's')
+        (CU) -> ('c', 'u')
+        (CV) -> ('c', 'v')
+        (CY) -> ('c', 'y')
+        (DA) -> ('d', 'a')
+        (DE) -> ('d', 'e')
+        (DV) -> ('d', 'v')
+        (DZ) -> ('d', 'z')
+        (EE) -> ('e', 'e')
+        (EL) -> ('e', 'l')
+        (EN) -> ('e', 'n')
+        (EO) -> ('e', 'o')
+        (ES) -> ('e', 's')
+        (ET) -> ('e', 't')
+        (EU) -> ('e', 'u')
+        (FA) -> ('f', 'a')
+        (FF) -> ('f', 'f')
+        (FI) -> ('f', 'i')
+        (FJ) -> ('f', 'j')
+        (FO) -> ('f', 'o')
+        (FR) -> ('f', 'r')
+        (FY) -> ('f', 'y')
+        (GA) -> ('g', 'a')
+        (GD) -> ('g', 'd')
+        (GL) -> ('g', 'l')
+        (GN) -> ('g', 'n')
+        (GU) -> ('g', 'u')
+        (GV) -> ('g', 'v')
+        (HA) -> ('h', 'a')
+        (HE) -> ('h', 'e')
+        (HI) -> ('h', 'i')
+        (HO) -> ('h', 'o')
+        (HR) -> ('h', 'r')
+        (HT) -> ('h', 't')
+        (HU) -> ('h', 'u')
+        (HY) -> ('h', 'y')
+        (HZ) -> ('h', 'z')
+        (IA) -> ('i', 'a')
+        (ID) -> ('i', 'd')
+        (IE) -> ('i', 'e')
+        (IG) -> ('i', 'g')
+        (II) -> ('i', 'i')
+        (IK) -> ('i', 'k')
+        (IO) -> ('i', 'o')
+        (IS) -> ('i', 's')
+        (IT) -> ('i', 't')
+        (IU) -> ('i', 'u')
+        (JA) -> ('j', 'a')
+        (JV) -> ('j', 'v')
+        (KA) -> ('k', 'a')
+        (KG) -> ('k', 'g')
+        (KI) -> ('k', 'i')
+        (KJ) -> ('k', 'j')
+        (KK) -> ('k', 'k')
+        (KL) -> ('k', 'l')
+        (KM) -> ('k', 'm')
+        (KN) -> ('k', 'n')
+        (KO) -> ('k', 'o')
+        (KR) -> ('k', 'r')
+        (KS) -> ('k', 's')
+        (KU) -> ('k', 'u')
+        (KV) -> ('k', 'v')
+        (KW) -> ('k', 'w')
+        (KY) -> ('k', 'y')
+        (LA) -> ('l', 'a')
+        (LB) -> ('l', 'b')
+        (LG) -> ('l', 'g')
+        (LI) -> ('l', 'i')
+        (LN) -> ('l', 'n')
+        (LO) -> ('l', 'o')
+        (LT) -> ('l', 't')
+        (LU) -> ('l', 'u')
+        (LV) -> ('l', 'v')
+        (MG) -> ('m', 'g')
+        (MH) -> ('m', 'h')
+        (MI) -> ('m', 'i')
+        (MK) -> ('m', 'k')
+        (ML) -> ('m', 'l')
+        (MN) -> ('m', 'n')
+        (MR) -> ('m', 'r')
+        (MS) -> ('m', 's')
+        (MT) -> ('m', 't')
+        (MY) -> ('m', 'y')
+        (NA) -> ('n', 'a')
+        (NB) -> ('n', 'b')
+        (ND) -> ('n', 'd')
+        (NE) -> ('n', 'e')
+        (NG) -> ('n', 'g')
+        (NL) -> ('n', 'l')
+        (NN) -> ('n', 'n')
+        (NO) -> ('n', 'o')
+        (NR) -> ('n', 'r')
+        (NV) -> ('n', 'v')
+        (NY) -> ('n', 'y')
+        (OC) -> ('o', 'c')
+        (OJ) -> ('o', 'j')
+        (OM) -> ('o', 'm')
+        (OR) -> ('o', 'r')
+        (OS) -> ('o', 's')
+        (PA) -> ('p', 'a')
+        (PI) -> ('p', 'i')
+        (PL) -> ('p', 'l')
+        (PS) -> ('p', 's')
+        (PT) -> ('p', 't')
+        (QU) -> ('q', 'u')
+        (RM) -> ('r', 'm')
+        (RN) -> ('r', 'n')
+        (RO) -> ('r', 'o')
+        (RU) -> ('r', 'u')
+        (RW) -> ('r', 'w')
+        (SA) -> ('s', 'a')
+        (SC) -> ('s', 'c')
+        (SD) -> ('s', 'd')
+        (SE) -> ('s', 'e')
+        (SG) -> ('s', 'g')
+        (SI) -> ('s', 'i')
+        (SK) -> ('s', 'k')
+        (SL) -> ('s', 'l')
+        (SM) -> ('s', 'm')
+        (SN) -> ('s', 'n')
+        (SO) -> ('s', 'o')
+        (SQ) -> ('s', 'q')
+        (SR) -> ('s', 'r')
+        (SS) -> ('s', 's')
+        (ST) -> ('s', 't')
+        (SU) -> ('s', 'u')
+        (SV) -> ('s', 'v')
+        (SW) -> ('s', 'w')
+        (TA) -> ('t', 'a')
+        (TE) -> ('t', 'e')
+        (TG) -> ('t', 'g')
+        (TH) -> ('t', 'h')
+        (TI) -> ('t', 'i')
+        (TK) -> ('t', 'k')
+        (TL) -> ('t', 'l')
+        (TN) -> ('t', 'n')
+        (TO) -> ('t', 'o')
+        (TR) -> ('t', 'r')
+        (TS) -> ('t', 's')
+        (TT) -> ('t', 't')
+        (TW) -> ('t', 'w')
+        (TY) -> ('t', 'y')
+        (UG) -> ('u', 'g')
+        (UK) -> ('u', 'k')
+        (UR) -> ('u', 'r')
+        (UZ) -> ('u', 'z')
+        (VE) -> ('v', 'e')
+        (VI) -> ('v', 'i')
+        (VO) -> ('v', 'o')
+        (WA) -> ('w', 'a')
+        (WO) -> ('w', 'o')
+        (XH) -> ('x', 'h')
+        (YI) -> ('y', 'i')
+        (YO) -> ('y', 'o')
+        (ZA) -> ('z', 'a')
+        (ZH) -> ('z', 'h')
+        (ZU) -> ('z', 'u')
+fromChars (c1) (c2)
+  = case ((c1), (c2)) of
+        ('a', 'a') -> (AA)
+        ('a', 'b') -> (AB)
+        ('a', 'e') -> (AE)
+        ('a', 'f') -> (AF)
+        ('a', 'k') -> (AK)
+        ('a', 'm') -> (AM)
+        ('a', 'n') -> (AN)
+        ('a', 'r') -> (AR)
+        ('a', 's') -> (AS)
+        ('a', 'v') -> (AV)
+        ('a', 'y') -> (AY)
+        ('a', 'z') -> (AZ)
+        ('b', 'a') -> (BA)
+        ('b', 'e') -> (BE)
+        ('b', 'g') -> (BG)
+        ('b', 'h') -> (BH)
+        ('b', 'i') -> (BI)
+        ('b', 'm') -> (BM)
+        ('b', 'n') -> (BN)
+        ('b', 'o') -> (BO)
+        ('b', 'r') -> (BR)
+        ('b', 's') -> (BS)
+        ('c', 'a') -> (CA)
+        ('c', 'e') -> (CE)
+        ('c', 'h') -> (CH)
+        ('c', 'o') -> (CO)
+        ('c', 'r') -> (CR)
+        ('c', 's') -> (CS)
+        ('c', 'u') -> (CU)
+        ('c', 'v') -> (CV)
+        ('c', 'y') -> (CY)
+        ('d', 'a') -> (DA)
+        ('d', 'e') -> (DE)
+        ('d', 'v') -> (DV)
+        ('d', 'z') -> (DZ)
+        ('e', 'e') -> (EE)
+        ('e', 'l') -> (EL)
+        ('e', 'n') -> (EN)
+        ('e', 'o') -> (EO)
+        ('e', 's') -> (ES)
+        ('e', 't') -> (ET)
+        ('e', 'u') -> (EU)
+        ('f', 'a') -> (FA)
+        ('f', 'f') -> (FF)
+        ('f', 'i') -> (FI)
+        ('f', 'j') -> (FJ)
+        ('f', 'o') -> (FO)
+        ('f', 'r') -> (FR)
+        ('f', 'y') -> (FY)
+        ('g', 'a') -> (GA)
+        ('g', 'd') -> (GD)
+        ('g', 'l') -> (GL)
+        ('g', 'n') -> (GN)
+        ('g', 'u') -> (GU)
+        ('g', 'v') -> (GV)
+        ('h', 'a') -> (HA)
+        ('h', 'e') -> (HE)
+        ('h', 'i') -> (HI)
+        ('h', 'o') -> (HO)
+        ('h', 'r') -> (HR)
+        ('h', 't') -> (HT)
+        ('h', 'u') -> (HU)
+        ('h', 'y') -> (HY)
+        ('h', 'z') -> (HZ)
+        ('i', 'a') -> (IA)
+        ('i', 'd') -> (ID)
+        ('i', 'e') -> (IE)
+        ('i', 'g') -> (IG)
+        ('i', 'i') -> (II)
+        ('i', 'k') -> (IK)
+        ('i', 'o') -> (IO)
+        ('i', 's') -> (IS)
+        ('i', 't') -> (IT)
+        ('i', 'u') -> (IU)
+        ('j', 'a') -> (JA)
+        ('j', 'v') -> (JV)
+        ('k', 'a') -> (KA)
+        ('k', 'g') -> (KG)
+        ('k', 'i') -> (KI)
+        ('k', 'j') -> (KJ)
+        ('k', 'k') -> (KK)
+        ('k', 'l') -> (KL)
+        ('k', 'm') -> (KM)
+        ('k', 'n') -> (KN)
+        ('k', 'o') -> (KO)
+        ('k', 'r') -> (KR)
+        ('k', 's') -> (KS)
+        ('k', 'u') -> (KU)
+        ('k', 'v') -> (KV)
+        ('k', 'w') -> (KW)
+        ('k', 'y') -> (KY)
+        ('l', 'a') -> (LA)
+        ('l', 'b') -> (LB)
+        ('l', 'g') -> (LG)
+        ('l', 'i') -> (LI)
+        ('l', 'n') -> (LN)
+        ('l', 'o') -> (LO)
+        ('l', 't') -> (LT)
+        ('l', 'u') -> (LU)
+        ('l', 'v') -> (LV)
+        ('m', 'g') -> (MG)
+        ('m', 'h') -> (MH)
+        ('m', 'i') -> (MI)
+        ('m', 'k') -> (MK)
+        ('m', 'l') -> (ML)
+        ('m', 'n') -> (MN)
+        ('m', 'r') -> (MR)
+        ('m', 's') -> (MS)
+        ('m', 't') -> (MT)
+        ('m', 'y') -> (MY)
+        ('n', 'a') -> (NA)
+        ('n', 'b') -> (NB)
+        ('n', 'd') -> (ND)
+        ('n', 'e') -> (NE)
+        ('n', 'g') -> (NG)
+        ('n', 'l') -> (NL)
+        ('n', 'n') -> (NN)
+        ('n', 'o') -> (NO)
+        ('n', 'r') -> (NR)
+        ('n', 'v') -> (NV)
+        ('n', 'y') -> (NY)
+        ('o', 'c') -> (OC)
+        ('o', 'j') -> (OJ)
+        ('o', 'm') -> (OM)
+        ('o', 'r') -> (OR)
+        ('o', 's') -> (OS)
+        ('p', 'a') -> (PA)
+        ('p', 'i') -> (PI)
+        ('p', 'l') -> (PL)
+        ('p', 's') -> (PS)
+        ('p', 't') -> (PT)
+        ('q', 'u') -> (QU)
+        ('r', 'm') -> (RM)
+        ('r', 'n') -> (RN)
+        ('r', 'o') -> (RO)
+        ('r', 'u') -> (RU)
+        ('r', 'w') -> (RW)
+        ('s', 'a') -> (SA)
+        ('s', 'c') -> (SC)
+        ('s', 'd') -> (SD)
+        ('s', 'e') -> (SE)
+        ('s', 'g') -> (SG)
+        ('s', 'i') -> (SI)
+        ('s', 'k') -> (SK)
+        ('s', 'l') -> (SL)
+        ('s', 'm') -> (SM)
+        ('s', 'n') -> (SN)
+        ('s', 'o') -> (SO)
+        ('s', 'q') -> (SQ)
+        ('s', 'r') -> (SR)
+        ('s', 's') -> (SS)
+        ('s', 't') -> (ST)
+        ('s', 'u') -> (SU)
+        ('s', 'v') -> (SV)
+        ('s', 'w') -> (SW)
+        ('t', 'a') -> (TA)
+        ('t', 'e') -> (TE)
+        ('t', 'g') -> (TG)
+        ('t', 'h') -> (TH)
+        ('t', 'i') -> (TI)
+        ('t', 'k') -> (TK)
+        ('t', 'l') -> (TL)
+        ('t', 'n') -> (TN)
+        ('t', 'o') -> (TO)
+        ('t', 'r') -> (TR)
+        ('t', 's') -> (TS)
+        ('t', 't') -> (TT)
+        ('t', 'w') -> (TW)
+        ('t', 'y') -> (TY)
+        ('u', 'g') -> (UG)
+        ('u', 'k') -> (UK)
+        ('u', 'r') -> (UR)
+        ('u', 'z') -> (UZ)
+        ('v', 'e') -> (VE)
+        ('v', 'i') -> (VI)
+        ('v', 'o') -> (VO)
+        ('w', 'a') -> (WA)
+        ('w', 'o') -> (WO)
+        ('x', 'h') -> (XH)
+        ('y', 'i') -> (YI)
+        ('y', 'o') -> (YO)
+        ('z', 'a') -> (ZA)
+        ('z', 'h') -> (ZH)
+        ('z', 'u') -> (ZU)
+language (code)
+  = case (code) of
+        (AA) -> "Afar"
+        (AB) -> "Abkhazian"
+        (AE) -> "Avestan"
+        (AF) -> "Afrikaans"
+        (AK) -> "Akan"
+        (AM) -> "Amharic"
+        (AN) -> "Aragonese"
+        (AR) -> "Arabic"
+        (AS) -> "Assamese"
+        (AV) -> "Avaric"
+        (AY) -> "Aymara"
+        (AZ) -> "Azerbaijani"
+        (BA) -> "Bashkir"
+        (BE) -> "Belarusian"
+        (BG) -> "Bulgarian"
+        (BH) -> "Bihari languages"
+        (BI) -> "Bislama"
+        (BM) -> "Bambara"
+        (BN) -> "Bengali"
+        (BO) -> "Tibetan"
+        (BR) -> "Breton"
+        (BS) -> "Bosnian"
+        (CA) -> "Catalan"
+        (CE) -> "Chechen"
+        (CH) -> "Chamorro"
+        (CO) -> "Corsican"
+        (CR) -> "Cree"
+        (CS) -> "Czech"
+        (CU) -> "Church Slavic"
+        (CV) -> "Chuvash"
+        (CY) -> "Welsh"
+        (DA) -> "Danish"
+        (DE) -> "German"
+        (DV) -> "Dhivehi"
+        (DZ) -> "Dzongkha"
+        (EE) -> "Ewe"
+        (EL) -> "Greek, Modern (1453-)"
+        (EN) -> "English"
+        (EO) -> "Esperanto"
+        (ES) -> "Castilian"
+        (ET) -> "Estonian"
+        (EU) -> "Basque"
+        (FA) -> "Persian"
+        (FF) -> "Fulah"
+        (FI) -> "Finnish"
+        (FJ) -> "Fijian"
+        (FO) -> "Faroese"
+        (FR) -> "French"
+        (FY) -> "Western Frisian"
+        (GA) -> "Irish"
+        (GD) -> "Gaelic"
+        (GL) -> "Galician"
+        (GN) -> "Guarani"
+        (GU) -> "Gujarati"
+        (GV) -> "Manx"
+        (HA) -> "Hausa"
+        (HE) -> "Hebrew"
+        (HI) -> "Hindi"
+        (HO) -> "Hiri Motu"
+        (HR) -> "Croatian"
+        (HT) -> "Haitian"
+        (HU) -> "Hungarian"
+        (HY) -> "Armenian"
+        (HZ) -> "Herero"
+        (IA)
+          -> "Interlingua (International Auxiliary Language Association)"
+        (ID) -> "Indonesian"
+        (IE) -> "Interlingue"
+        (IG) -> "Igbo"
+        (II) -> "Nuosu"
+        (IK) -> "Inupiaq"
+        (IO) -> "Ido"
+        (IS) -> "Icelandic"
+        (IT) -> "Italian"
+        (IU) -> "Inuktitut"
+        (JA) -> "Japanese"
+        (JV) -> "Javanese"
+        (KA) -> "Georgian"
+        (KG) -> "Kongo"
+        (KI) -> "Gikuyu"
+        (KJ) -> "Kuanyama"
+        (KK) -> "Kazakh"
+        (KL) -> "Greenlandic"
+        (KM) -> "Central Khmer"
+        (KN) -> "Kannada"
+        (KO) -> "Korean"
+        (KR) -> "Kanuri"
+        (KS) -> "Kashmiri"
+        (KU) -> "Kurdish"
+        (KV) -> "Komi"
+        (KW) -> "Cornish"
+        (KY) -> "Kirghiz"
+        (LA) -> "Latin"
+        (LB) -> "Letzeburgesch"
+        (LG) -> "Ganda"
+        (LI) -> "Limburgan"
+        (LN) -> "Lingala"
+        (LO) -> "Lao"
+        (LT) -> "Lithuanian"
+        (LU) -> "Luba-Katanga"
+        (LV) -> "Latvian"
+        (MG) -> "Malagasy"
+        (MH) -> "Marshallese"
+        (MI) -> "Maori"
+        (MK) -> "Macedonian"
+        (ML) -> "Malayalam"
+        (MN) -> "Mongolian"
+        (MR) -> "Marathi"
+        (MS) -> "Malay"
+        (MT) -> "Maltese"
+        (MY) -> "Burmese"
+        (NA) -> "Nauru"
+        (NB) -> "Bokm\229l, Norwegian"
+        (ND) -> "Ndebele, North"
+        (NE) -> "Nepali"
+        (NG) -> "Ndonga"
+        (NL) -> "Dutch"
+        (NN) -> "Norwegian Nynorsk"
+        (NO) -> "Norwegian"
+        (NR) -> "Ndebele, South"
+        (NV) -> "Navaho"
+        (NY) -> "Chewa"
+        (OC) -> "Occitan (post 1500)"
+        (OJ) -> "Ojibwa"
+        (OM) -> "Oromo"
+        (OR) -> "Oriya"
+        (OS) -> "Ossetian"
+        (PA) -> "Panjabi"
+        (PI) -> "Pali"
+        (PL) -> "Polish"
+        (PS) -> "Pashto"
+        (PT) -> "Portuguese"
+        (QU) -> "Quechua"
+        (RM) -> "Romansh"
+        (RN) -> "Rundi"
+        (RO) -> "Moldavian"
+        (RU) -> "Russian"
+        (RW) -> "Kinyarwanda"
+        (SA) -> "Sanskrit"
+        (SC) -> "Sardinian"
+        (SD) -> "Sindhi"
+        (SE) -> "Northern Sami"
+        (SG) -> "Sango"
+        (SI) -> "Sinhala"
+        (SK) -> "Slovak"
+        (SL) -> "Slovenian"
+        (SM) -> "Samoan"
+        (SN) -> "Shona"
+        (SO) -> "Somali"
+        (SQ) -> "Albanian"
+        (SR) -> "Serbian"
+        (SS) -> "Swati"
+        (ST) -> "Sotho, Southern"
+        (SU) -> "Sundanese"
+        (SV) -> "Swedish"
+        (SW) -> "Swahili"
+        (TA) -> "Tamil"
+        (TE) -> "Telugu"
+        (TG) -> "Tajik"
+        (TH) -> "Thai"
+        (TI) -> "Tigrinya"
+        (TK) -> "Turkmen"
+        (TL) -> "Tagalog"
+        (TN) -> "Tswana"
+        (TO) -> "Tonga (Tonga Islands)"
+        (TR) -> "Turkish"
+        (TS) -> "Tsonga"
+        (TT) -> "Tatar"
+        (TW) -> "Twi"
+        (TY) -> "Tahitian"
+        (UG) -> "Uighur"
+        (UK) -> "Ukrainian"
+        (UR) -> "Urdu"
+        (UZ) -> "Uzbek"
+        (VE) -> "Venda"
+        (VI) -> "Vietnamese"
+        (VO) -> "Volap\252k"
+        (WA) -> "Walloon"
+        (WO) -> "Wolof"
+        (XH) -> "Xhosa"
+        (YI) -> "Yiddish"
+        (YO) -> "Yoruba"
+        (ZA) -> "Chuang"
+        (ZH) -> "Chinese"
+        (ZU) -> "Zulu"
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c) 2013, HugoDaniel
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of HugoDaniel nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/iso639.cabal b/iso639.cabal
new file mode 100644
--- /dev/null
+++ b/iso639.cabal
@@ -0,0 +1,24 @@
+-- Initial iso639.cabal generated by cabal init.  For further 
+-- documentation, see http://haskell.org/cabal/users-guide/
+
+name:                iso639
+version:             0.1.0.0
+synopsis:            ISO-639-1 language codes mapping to Haskell datatypes from the official site (http://www.loc.gov/standards/iso639-2/php/English_list.php)
+-- description:         
+license:             BSD3
+license-file:        LICENSE
+author:              HugoDaniel
+maintainer:          mr.hugo.gomes@gmail.com
+-- copyright:           
+category:            Data
+build-type:          Simple
+-- extra-source-files:  
+cabal-version:       >=1.10
+
+library
+  exposed-modules:     Data.LanguageCodes
+  -- other-modules:       
+  -- other-extensions:    
+  build-depends:       base >=4.6 && <4.7
+  -- hs-source-dirs:      
+  default-language:    Haskell98
