 import Foundation
 
 enum WordClass {
-    case Phrase, Suffix, Prefix, Preposition, Pronoun, Numeral, Particle, Adverb, Verb, Noun, Adjective, Other
+    case Phrase, Suffix, Prefix, Preposition, Pronoun, Numeral, Particle, Adverb, Verb, Noun, Adjective, Correlative, Other
 }
 
 typealias GrammarResult = (String, [String])

            wordClass = .Particle
        } else if adverbs.contains(eo.lowercaseString) {
            wordClass = .Adverb
        } else if let (base, parts) = partsByPattern("en?!?$") {
            wordClass = .Adverb
            self.base = base

    let prepositions = ["al", "anstataŭ", "antaŭ", "apud", "cis", "ĉe", "ĉirkaŭ", "da", "de", "disde", "dum", "ekde", "ekster", "el", "en", "estiel", "far", "for", "graŭ", "ĝis", "inter", "je", "kiel", "kontraŭ", "krom", "kun", "laŭ", "malantaŭ", "malapud", "malgraŭ", "malsupre", "meze", "na", "per", "po", "por", "post", "preter", "pri", "pro", "proksime", "samkiel", "sen", "sob", "sub", "super", "sur", "tra", "trans"]
    let particles = ["ajn", "almenaŭ", "ankaŭ", "apenaŭ", "eĉ", "hoj", "ja", "jam", "jes", "kaj", "ke", "kvankam", "kvazaŭ", "malpli", "malplej", "mem", "nek", "nur", "ol", "plej", "pli", "plu", "se", "sed", "tamen", "tre", "tro", "tuj", "ĉar", "ĉi", "ĵus"]
    let adverbs = ["baldaŭ", "hieraŭ", "hodiaŭ", "morgaŭ", "nun", "postmorgaŭ", "preskaŭ"]
    let correlative_prefixes = ["ki", "ti", "i", "ĉi", "neni"]
    let correlative_suffixes = ["o", "u", "a", "e", "el", "al", "am", "om", "es"]
    var correlatives: [String] {
        var c = [String]()
        correlative_prefixes.forEach { p in
            correlative_suffixes.forEach { s in
                c.append(p + s)
            }
        }
        return c
    }

    init(eo: String, en: String) {
        self.eo = eo
