labial alveolar palatal guttural lateral
nasal m n ň /ŋ/
plosive voiceless p t k
voiced b d g
affricate voiceless c /ts/ č /tʃ/
voiced ʒ /dz/ ǯ /dʒ/
fricative voiceless f s š /ʃ/ h /x~h/
voiced v z ž /ʒ/
sonorant w r y /j/ l
front back
close unrounded ı /i/
rounded ü /y/ u
mid unrounded e ë /ə/
rounded ö /ø/ o
open ä /æ/ a /a/

notes on pronunciation: - /i/ and /u/ sound like [ɪ] and [ʊ] in non-I grades


there are seven vowel grades called that can be used to serve different grammatical functions, therefore, all words with the same row have related meanings.

a ıa ua ea üa ao
ä äı ıä üä
e ıe ue öe üe eo
ë ëı ıë üë
ı au äu öa öä öë äö
ö öı ıö üö
o ıo uo eo üo oe
ü üı ıü ou öa
u ıu öu eu öü oa



consider höın “dog”. a dog is clearly a thing, so it gets type E (for Entity). now consider kol “to sleep”. “to sleep” isn’t a thing, it’s an action you do. to find the type of stuff you can do, let’s look at how it’s used in a sentence. “the dog sleeps” is a truth, or at least it could be true. statements that have the ability to be true get type T (for Truth). we pretend kol is a ‘function’ that takes höın as an argument and ‘returns’ a truth. we call functions that return truths, predicates.

Q: what is the type of kol? A: <E, T>

in coding you might type “sleep(dog);”, but in Grog we ignore all the unpronounceable syntax and just say kol höın.

actually, all words by default are predicates; only by II-grading to the nucleus does hön “to be a dog” become the noun höın “dog”. turning a predicate into a noun (nominalization) just means assuming an object that satisfies its first argument (i.e., makes it true), so something that is a dog… well… is a dog. the same process can be applied to any predicate like kol “to sleep” into koıl “one who sleeps”!


if you want to express a particularly specific concept that can’t be derived otherwise, you might need compounding. simply smush the words together (the trailing compounding words get high pitch-accent compared to the usual low) and it means whatever you want to mean, usually relating to its component roots. the semantic derivation process isn’t precise compared to serials, though, since it’s basically a new root. make sure the meaning is either obvious or already in context when conversing.

ka höınvóm /ka.høɪnꜛvom/ what dog-house “what’s a doghouse?”


ka höın vom /ka.høɪn.vom/ what dog house “what’s something that is both a dog and house?” (???)

pitch accent falls on the first mora and is marked with an acute. if the vowel already has an umlaut, it’s marked with a circumflex. if long, apply acute on the second mora and override any umlaut.


in the sentence “i love that you’re happy”, what is the type of the second argument to “love” namely “that you’re happy”? it’s similar to “you’re happy” which is just a truth T, but with that “that” it’s being treated as a noun fed into “love”! what’s going on??

these sort of truth-like values get a special type ⌜T⌝, and you can turn predicates into quasi-predicates that instead return ⌜T⌝ via III-gradation (quasiquotation). in an argument that accepts E, ⌜T⌝ is also acceptable (but not the other way!)—for nerds: ⌜T⌝ can cast to E. this is useful since predicates can only have other quasi-predicates as arguments.

mah uın kıol höın make 1sg ⌜sleep dog⌝ “i make the dog sleep”

you can terminate quasiquotes early by lengthening the nucleus (specifically first mora) of the final argument or, in the case of no arguments, the predicate itself.

kııol ⌜sleep⌝ “to sleep”

whitespace is completely cosmetic (e.g. mah’uınkıolhöın), but it’s useful to know to read and write exact syllable boundaries. when encountering a cluster between two nuclei, the following patterns take priority in order, skipping when phonotactically invalid:

  1. |C
  2. |CC
  3. CC|
  4. C|C
  5. C|CC
  6. CC|C
  7. CC|CC

otherwise, insert a glottal stop for desired boundary. the rest of this document will ignore whitespace.


juxtaposed predicates are always assumed to be serial, otherwise, the type system wouldn’t allow it if they were separate. but what is a serial?

a serial predicate consists of a head predicate followed by a tail predicate, which allows you to compose predicates in a regular way. along with syntax, the exact behavior of a predicate in serials can be derived from its type. the following is a(n incomplete) list of serial derivations:

some concrete examples:

<E, <E, ⌜T⌝>, T> <E, ⌜T⌝, T> = <E, ⌜T⌝, T>; “◌ tries to satisfy ◌” “◌ proves ◌ is the case” = “◌ tries to prove ◌ is the case”

since serial predicates are still predicates, they can be used as other tails.

<E, ⌜T⌝, T> <E, ⌜T⌝, T> <E, T> = <E, ⌜T⌝, T> <E, E, T> = <E, E, T>; “◌ hopes that ◌ is the case” “◌ makes ◌ the case” “◌ is happy” = “◌ hopes to make ◌ is the case” “◌ is happy” = “◌ hopes to make ◌ happy”

<E, <E, ⌜T⌝>, T> <E, T> = <E, T>; “◌ tries to satisfy ◌” “◌ sleeps” “◌ is a dog” = “◌ tries to satisfy ◌” “◌ is a sleeping dog” = “◌ tries to be a sleeping dog”

skaıt’ashöın try sleep dog “the something trying to be a sleeping dog”

note that this isn’t exactly what should be said, since it seems like the object in question is also trying to become a dog. serials are right-associative by default, but predicates can be made to serialize leftward by lengthening the vowel of that predicate, causing it and the predicates before it to act as a head itself.

<E, <E, ⌜T⌝>, T> <E, ⌜T⌝, T>(long) <E, T>; (“◌ tries to satisfy ◌” “◌ sleeps”) “◌ is a dog” = “◌ tries to sleep” “◌ is a dog” = “◌ tries to sleep and is a dog”

and of course, nominalization occurs by seeing what satisfies the predicate. something that tries to sleep but already is a dog must be…

skaıt’aashöın try sleep <- dog “the dog trying to sleep”

P.S. our “i make the dog sleep” example from earlier can be written:

mahkıol’uınhöın make sleep 1SG dog


number words can be IV-graded to form indices which nominalize the surrounding quasiquote as a neat shortcut.

mıdnıam’uın’uen green ⌜eat 1SG 1⌝ “something i eat is green”

the value of the index itself marks how many layers of quasiquotation get nominalized.

se’uınnıadekkolnöa ⌜see 1SG ⌜not able sleep 2⌝⌝ “something i see that can’t sleep”

compared with…

se’uınnıadekkol’uen ⌜see 1SG ⌜not able sleep 1⌝⌝ “that i see something that can’t sleep”


use IV-grade for custom predicates (metapredicates) with indices as arguments (which are necessarily captured) indexed by their value.

höındansue’uın’uen dog PST (see 1SG 1) “the dog that i saw”


this will be organized by type from least specific to most specific, and then by alphabetical order.