In C, there is a single general dictionary that contains all identifiers, so an identifier defined in any place may be used in any other, which leads to many problems for large applications, and even more for applications that use several pieces of code from several organizations.
On the other hand, in Pliant, each identifier belongs either:
export ident1 ident2 ...
exports the listed identifiers.
public body
All identifiers defined within the body will be exported.
public ... [private]
All identifiers defined after public function, and before private one will be exported.
module module_name
will give access to the identifiers exported by module defined in file /pliant/module/module_name
submodule module_name
will do the same, but identifiers exported by the specified module will also be exported by the current module.