Skip to content

62 Packages ​

The file path model/Task.norm matches package app.model. Main.norm uses import app.model.Task to refer to its public value across package boundaries.

Entry file app/Main.norm:

norm
package app

import app.model.Task

main() {
  Task task = Task(title: "Learn Norm")
  printLine(task.title)
}

Related file app/model/Task.norm:

norm
package app.model

public value Task {
  public String title
}

Module description app/module.norm:

norm
Module module() {
  return module(name: "app", version: 1, exports: ["Main", "model.Task"])
}

Run from the repository root:

sh
norm run norm/tests/docs/projects/packages_steps/app/Main.norm

Expected output:

text
Learn Norm

Try it: Move Task.norm without changing its package declaration and inspect the path diagnostic.

Precise rules: Reference.

Norm 0.25