Skip to main content
NM-RFC-0002

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-256
6f60cbc1673835fd4711101941910b4e5017fa4e1694d33dc9659474588a0e9d

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.

nm
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=true negotiation 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.

Table 1
Review topicInformation to check
Source revisionSHA-256 digest bound to this reading edition
AvailabilityCurrent capability record and tool options
Evidence boundaryModel, size and interpretation limits above