Skip to content

Symbology

This is the reference card for every contributor.

GlyphNameSemantic RoleUsage Context
The JanusIdentity / DualismThe Core, The README, The Philosophy. Represents the tension (Safe vs. Unsafe, Script vs. System).
🜏The AntimonyConstitution / LawInvariants that cannot change. The “Purified” Core. Used in SPEC-*.md for hard rules.
The DeltaTransformationWhere the Compiler intervenes (Ghost Memory, Desugaring, Lowering).
The TurnstileJudgment / TruthSemantic rules. Affine type enforcement. “The compiler proves this.”
The VoidForbiddenAnti-features. GC, inheritance, hidden control flow. “This path is closed.”
The HazardRaw / UnsafePointer arithmetic, unchecked casts, :core profile code.
The BoxBoundaryCapabilities (ctx.net), FFI boundaries, Module interfaces.

The “Safety Dial” is not a knob; it is a selection of Symbolic Modes.

  • Profile: :core
  • Glyph:
  • Semantics: No guards. You are the hardware.
  • Memory: Manual Pointer Arithmetic.
// ⚠ SAFETY: User guarantees bounds.
func poke(addr: usize, val: u8) do ... end
  • Profile: :core
  • Glyph:
  • Semantics: Affine Types / Unique. The compiler judges ownership.
  • Memory: Linear types (~T). Move-by-default.
// ⊢ INVARIANT: 'buf' is consumed.
func send(buf: ~Buffer) do ... end
  • Profile: :edge / :script
  • Glyph:
  • Semantics: Ghost Memory / ARC. The compiler transforms intent into safety.
  • Memory: Implicit ownership. Elided ref-counts.
// ⟁ TRANSFORM: Compiler inserts 'retain/release'.
func process(data: Buffer) do ... end

The glyph table above draws a hard line between two halves of Janus. The line is the whole design:

Keep English for control flow and logic. Keep sigils for phase and type machinery.

That keeps the poem in the body, and the steel in the skeleton.

  • The bodyfunc, if, for, match, return — reads like prose. A reviewer skims it the way they skim an essay.
  • The skeleton§ (compile-time), $ (extraction), @ (metadata), [T] (generics), *T (pointers), !T (errors) — carries phase and type machinery. Dense by design, because it is load-bearing.

Mix them freely and both lose. English that does type computation becomes ambiguous prose. Sigils that do control flow become line noise. Janus keeps them in their lanes.

See /philosophy/haiku/ for the goal-word each profile swears by.