Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

RFD-0017 — Universal top type is / Top; no explicit Thing wrapper

Committed Opened 2026-05-03 · Committed 2026-05-03

Question

Argon needs a universal top type — the type that every other concept transitively specializes. Should the top type be named for a foundational ontology’s convention (Thing from OWL, Entity from UFO), or use a foundational-ontology-neutral notation?

Decision

The universal top type is (the typeset character) with Top as an ASCII alternate. Every concept transitively specializes . There is no explicit Thing wrapper concept in the language.

Foundational ontologies that have their own top concept (UFO-A’s Thing, BFO’s Entity, DOLCE’s Particular) declare those at the package level as ordinary concepts that specialize . A user-facing UFO-A taxonomy roots at UFO-A’s Thing; that Thing itself specializes .

Rationale

is foundational-ontology-neutral. Argon does not pick a foundational ontology (RFD-0002). Naming the top type for any specific foundational ontology’s convention would have leaked that ontology’s framing into the language’s universal vocabulary. is a notation from set theory and lattice theory; it predates and outlasts any specific ontological commitment.

No wrapper layer. Building a Thing concept into the compiler that everything transitively specializes through would have required the compiler to know about Thing. That’s the kind of foundational-ontology hardcoding RFD-0002 forbids. Letting be the universal top means the compiler is the only thing that knows , and every foundational ontology’s top concept is just an ordinary concept that specializes it.

Typeset plus ASCII Top. Code editors handle both; is the canonical form in published material; Top is the typeable alternate.

Consequences

  • Concept declarations that don’t explicitly specialize anything implicitly specialize .
  • The specializes relation <: (with accepted as an alternate) closes transitively at .
  • UFO-A’s Thing, BFO’s Entity, etc. are declared in their respective packages as concept Thing <: ⊤ and so on.
  • The book and rustdoc use in formal notation; user-facing prose and editor surfaces accept Top.