// auto-generated by elc --emit-header — do not edit extern fn fr_str_ends(s: String, suf: String) -> Bool extern fn fr_str_drop_last(s: String, n: Int) -> String extern fn fr_str_last_char(s: String) -> String extern fn fr_str_last2(s: String) -> String extern fn fr_is_vowel_start(s: String) -> Bool extern fn fr_is_known_irregular(verb: String) -> Bool extern fn fr_verb_group(base: String) -> String extern fn fr_stem(base: String) -> String extern fn fr_slot(person: String, number: String) -> Int extern fn fr_irregular_present(verb: String, person: String, number: String) -> String extern fn fr_regular_present(stem: String, vgroup: String, slot: Int) -> String extern fn fr_future_stem(base: String, vgroup: String) -> String extern fn fr_regular_future(fstem: String, slot: Int) -> String extern fn fr_irregular_future_stem(verb: String) -> String extern fn fr_imperfect_stem(base: String, vgroup: String) -> String extern fn fr_regular_imperfect(istem: String, slot: Int) -> String extern fn fr_uses_etre(verb: String) -> Bool extern fn fr_past_participle(verb: String) -> String extern fn fr_avoir_present(slot: Int) -> String extern fn fr_etre_present(slot: Int) -> String extern fn fr_conjugate(verb: String, tense: String, person: String, number: String) -> String extern fn fr_gender(noun: String) -> String extern fn fr_invariant_plural(noun: String) -> String extern fn fr_pluralize(noun: String) -> String extern fn fr_agree_article(noun: String, definite: String, number: String) -> String extern fn fr_subject_starts_vowel(subject: String) -> Bool extern fn fr_verb_ends_vowel(verb_form: String) -> Bool extern fn fr_question_inversion(subject: String, verb_form: String) -> String