3.4 KiB
title: quox. the language date: 2023-10-25 tags: [quox, computer, types] bibliography: quox.bib link-citations: true show-toc: true ...
:::{.aside .floating}
hot minute n.
- A long period of time.
- A short period of time.
- An unspecified period of time.
:::
for the last hot minute [@hotminute], i’ve been working on a little programming language. it’s finally starting to approach a state where it can compile some programs, so maybe i should talk about it a bit.
what is a quox [(tl;dr for type system nerds)]

- it’s a dependently typed functional language, like your agdas and your idrises.
- [q]{.qtt-q}uantitative type theory (qtt) [@nuttin; @qtt] is a nice combination of dependent types, resource tracking, and erasure of stuff like proofs.
- it uses [x]{.xtt-x}tt [@xtt] for equality. i think it's neat
- it has a closed type universe. you don’t define new datatypes, but the language gives you building blocks to put them together. this is because of xtt originally, but i just ran with it.
so now you can see where the name [q]{.qtt-q}uo[x]{.xtt-x} comes from. other than my favourite dragon. anyway it also has
- bidirectional type checking [@bidi]
- crude-but-effective stratification [@crude; @crude-blog] for dealing with universes
dependent types

there are lots of languages with dependent types already. if you are reading this, chances are probably quite high you already know what they are and can skip to the next section.
*but still something. probably*
qtt
sometimes, values can only be used in certain ways to make sense. this isn't controversial: it's the old use-after-free.