Under heavy development. This site describes the intended 1.0 language. Current features and performance vary. Development status
Sn50SnThe SnAPI programming language
Snapshot · Oct 24, 2026 · Frozen documentation

WideningNumeric

Requires the compiler's strict implicit numeric widening from Source to Self.

Sn is under heavy development. This reference includes the intended 1.0 design; features may be incomplete in the current compiler. Read the status →

Module std.math

import std.math;

Public declaration contracts and authored examples. A page can document several related symbols. Implementation bodies are excluded.

WideningNumeric

pub concept WideningNumeric<Self, Source>

Requires the compiler's strict implicit numeric widening from Source to Self.

Only canonical standard-package identity grants this compiler predicate; a same-named user concept keeps ordinary structural meaning. Exact equal types, equal-width different primitives, byte, mixed signedness and incompatible integer/floating domains fail. Target-width facts come from the selected target, not the host. No runtime witness, allocation or callable is introduced. Self: Strictly wider ordinary numeric destination representation. Source: Exact ordinary numeric source representation.

Documentation snapshot: October 24, 2026 About versions ↗
Searching Development · language & standard library