Skip to content

Types

AbySS values borrow names from arcane lore while mapping cleanly to familiar runtime primitives.

Rune Meaning
arcana Integer values; think Tarot numerals anchoring discrete counts.
aether Floating-point numbers that capture fluid, continuous quantities.
rune UTF-8 strings, channeling the idea that inscriptions carry power.
omen Boolean values with boon (true) and hex (false).
abyss The void type returned by spells that do not produce a value.
scroll Ordered collections mixing any elements.
lexicon Rune-keyed dictionaries for structured lookups.
materia Dynamically typed slot able to hold any runtime value.
glyph Compile-time token that names a type (used by casts such as .transmute(glyph)).
artifact User-defined struct with typed fields and optional methods.
forge x: arcana = 10;
forge pi: aether = 3.14;
forge message: rune = "Hello, AbySS";
forge is_active: omen = boon;
forge spellbook: scroll = [1, boon, "sigil"];
forge ledger: lexicon = {"sun": 1, "moon": 2};
forge essence: materia = 99;

Runes carry their own rituals for everyday text work. All of them return new values — runes are never mutated in place.

  • rune.upper() / rune.lower() → case-shifted copy.
  • rune.trim() → copy with surrounding whitespace removed.
  • rune.tally() → character count as arcana (Unicode characters, mirroring scroll.tally()’s element count).
  • rune.contains(needle)omen.
  • rune.replace(from, to) → copy with every from replaced (the search rune must be non-empty).
  • rune.split(separator)scroll of runes (the separator must be non-empty).
forge chant: rune = " Fiat Lux ";
forge clean: rune = chant.trim();
unveil(clean.upper());
unveil(clean.lower());
unveil(clean.tally().transmute(rune));
unveil(clean.contains("Lux"));
unveil(clean.replace("Lux", "Nox"));
forge parts: scroll = "boon,hex,abyss".split(",");
unveil(parts[1]);
FIAT LUX
fiat lux
8
boon
Fiat Nox
hex

Each rune name hints at its intent: glyph tokens are passed into conversions, artifact declarations craft reusable records, and materia absorbs values whose final shape is still unknown.