= Import The built-in `import` function provides a way to parse a `.nix` file. [source,nix] .a.nix .... { message = "You successfully imported me!"; b = 12; } .... [source] .Example .... nix-repl> a = import ./a.nix nix-repl> a.message "You successfully imported me!" nix-repl> a.b 12 .... [NOTE] ==== If path supplied to the `import` function is a directory, the file default.nix in that directory is imported. ==== The scope of the imported file does not inherit the scope of the importer. [source,nix] .b.nix .... x + 7 .... [source] .Example .... nix-repl> x = 12 nix-repl> y = import ./b.nix nix-repl> y error: … while calling the 'import' builtin at «string»:1:2: 1| import ./b.nix | ^ error: undefined variable 'x' at /home/amy/codeberg/nix-book/b.nix:1:1: 1| x + 7 | ^ 2| .... So to pass information when importing something, use a function. [source,nix] .c.nix .... x: x + 7 .... [source] .Example .... nix-repl> f = import ./c.nix nix-repl> f 12 19 .... The imported file may import other files, which may in turn import more files.