Exact and namespaced imports
Design document · English reading edition
RFCs record designs and changes. A proposal appearing here does not mean its feature is ready to use. Explore current language support
Status recorded in the original: Tooling experimental
Bound original source · SHA-2566f60cbc1673835fd4711101941910b4e5017fa4e1694d33dc9659474588a0e9d
Reading edition reviewed: 2026-10-02
Purpose and scope
Distinguishes imports from the package registry from imports pinned by a workspace. An exact version helps two executions at different times resolve the same dependency.
Core design rules
- A
package.import requires an exact version. - A
workspace.import selects the module pinned by the workspace manifest and rejects an additional source@version. - Legacy exact-version spelling may remain accepted during the transition; the AST distinguishes it as
legacy-registry.
Example from the original
This example illustrates the design recorded in the original. It is not by itself a claim of executable or stable support; check required options and the current version.
module exact_consumer;
use package.std.bell@0.1;
use package.ml.vqc_layer@0.1;
use workspace.local_helpers;Limits and interpretation
- Version ranges and runtime package discovery are not goals of this contract.
- The documented
experimental.exactImports=truenegotiation can also reject unversioned lesson examples.
Status and implementation boundary
This document describes an experimental import contract. Statements about the old 0.1 default are historical compatibility records; consult the capability center for current tool defaults.
| Review topic | Information to check |
|---|---|
| Source revision | SHA-256 digest bound to this reading edition |
| Availability | Current capability record and tool options |
| Evidence boundary | Model, size and interpretation limits above |