# Source files

File order and declaration order never matter. A declaration can refer to
one defined later in the file, or in another file.

Names are unique across the whole project, so a second `Count` in another
file is the error
[`semantic.duplicate_declaration`](../errors/semantic.duplicate_declaration.md).
The one exception is a private function, type or constant: its name needs
to be unique only within its domain (see [Files and names](files-and-names.md)).
