resource HangulJamo = open Prelude in { flags coding=utf8 ; oper lemmaToStem : (lemma : Str) -> Str = \lemma -> case lemma of { stem + "다" => stem ; _ => Predef.error ("lemmaToStem was applied to a non-lemma," ++ lemma) } ; infinitive : (stem : Str) -> Str = \stem -> case stem of { _ + #a_o + #batchim => stem + "아" ; _ + (#a | #eo) => stem ; init + #o => init + "ᅪ" ; init + #eu => init + "ᅥ" ; init + #i => init + "ㅕ" ; init + #u => init + "ᅯ" ; init + #ha => init + "해" ; _ => stem + "어" } ; present_haeyo : (stem : Str) -> Str = \stem -> infinitive stem + "요" ; past_haeyo : (stem : Str) -> Str = \stem -> infinitive stem + "ᆻ어요" ; oper a_o : pattern Str = #("ᅡ" | "ᅩ") ; a : pattern Str = #"ᅡ" ; o : pattern Str = #"ᅩ" ; eo : pattern Str = #"ᅥ" ; eu : pattern Str = #"ᅳ" ; i : pattern Str = #"ᅵ" ; u : pattern Str = #"ᅮ" ; ha : pattern Str = #"하" ; oper consonant : pattern Str = #("ᄀ" | "ᄁ" | "ᄂ" | "ᄃ" | "ᄄ" | "ᄅ" | "ᄆ" | "ᄇ" | "ᄈ" | "ᄉ" | "ᄊ" | "ᄋ" | "ᄌ" | "ᄍ" | "ᄎ" | "ᄏ" | "ᄐ" | "ᄑ" | "ᄒ" | "ᆨ" | "ᆩ" | "ᆪ" | "ᆫ" | "ᆬ" | "ᆭ" | "ᆮ" | "ᆯ" | "ᆰ" | "ᆱ" | "ᆲ" | "ᆳ" | "ᆴ" | "ᆵ" | "ᆶ" | "ᆷ" | "ᆸ" | "ᆹ" | "ᆺ" | "ᆻ" | "ᆼ" | "ᆽ" | "ᆾ" | "ᆿ" | "ᇀ" | "ᇁ" | "ᇂ") ; batchim : pattern Str = #("ᆨ" | "ᆩ" | "ᆪ" | "ᆫ" | "ᆬ" | "ᆭ" | "ᆮ" | "ᆯ" | "ᆰ" | "ᆱ" | "ᆲ" | "ᆳ" | "ᆴ" | "ᆵ" | "ᆶ" | "ᆷ" | "ᆸ" | "ᆹ" | "ᆺ" | "ᆻ" | "ᆼ" | "ᆽ" | "ᆾ" | "ᆿ" | "ᇀ" | "ᇁ" | "ᇂ") ; choseong : pattern Str = #("ᄀ" | "ᄁ" | "ᄂ" | "ᄃ" | "ᄄ" | "ᄅ" | "ᄆ" | "ᄇ" | "ᄈ" | "ᄉ" | "ᄊ" | "ᄋ" | "ᄌ" | "ᄍ" | "ᄎ" | "ᄏ" | "ᄐ" | "ᄑ" | "ᄒ") ; vowel : pattern Str = #("ᅡ" | "ᅢ" | "ᅣ" | "ᅤ" | "ᅥ" | "ᅦ" | "ᅧ" | "ᅨ" | "ᅩ" | "ᅪ" | "ᅫ" | "ᅬ" | "ᅭ" | "ᅮ" | "ᅯ" | "ᅰ" | "ᅱ" | "ᅲ" | "ᅳ" | "ᅴ" | "ᅵ") ; }