Object model
Kyna uses one nominal class parent. intf is structural: a class explicitly names contracts with implements, while closed object values are checked structurally at interface assignment and argument boundaries. No interface state or implementation is copied. A class may implement many interfaces but may extend only one class.
Generic declarations will be represented as type parameters with optional upper bounds, for example class Box<T> and fn first<T>(items: List<T>): T. Instantiation specializes types in the analyzer; runtime class/function objects remain monomorphic and carry no source-language type erasure surprises. Generic constraints are checked before interpretation.
Unmodified members are private. The analyzer enforces protected/public access, static versus instance access, explicit and compatible overrides, final restrictions, abstract obligations, constructor arguments, and return paths. Traits and generics remain reserved syntax/design work and are not silently treated as any.
Source captured: 2026-10-11