Changes for version 0.03 - 2026-06-14

  • New patterns:
    • `case undef` - matches an undefined topic.
    • `case ref(TYPE)` / `ref` - ref($topic) [eq "TYPE"]; bare = any ref.
    • `case reftype(TYPE)` / `reftype` - underlying type, through blessing.
    • `case isa(Class)` - blessed object derived from Class (fast @ISA).
  • Undef/type safety: every pattern is now warning-free. An undef topic matches only `case undef` (else falls to default) instead of warning and mis-matching `case 0`/`case ""`. Numeric patterns are guarded by looks_like_number, so a non-numeric topic neither warns ("Argument isn't numeric") nor mis-matches (`"one" == 0` was true; now it is not).
  • The numeric guard is computed once per switch (hoisted), so numeric switches run on par with an equivalently type-safe hand-written chain.

Modules

compile-time, lexically-scoped switch/case