Modules

Pyr's module system uses the imp keyword for imports. You can pull in specific names, import an entire namespace, or alias modules. Only declarations marked pub are visible to importers.

imp imports from stdlib or local files. Selective import pulls specific names into scope.

imp std/io { println, print }

Namespace import keeps the module prefix.

imp std/fs

Aliased import renames the module.

imp std/os as system

fn main() {
  println("hello from std/io")

Namespace access uses dot syntax.

  exists = fs.exists("README.md")
  println(exists)

Aliased module access.

  name = system.env("USER") or "unknown"
  println(name)
}