A modulok segítségével átláthatóbbá tehetjük a programjainkat, elkülöníthetjük egymástól a logikailag különböző programrészleteinket. A program modulokba rendezhető, s a modulokban lévő adatok, változók elretjhetők a többi modul elől.
A modul egy objektum, s egy névteret reprezentál, amely látható vagy rejtett más
modulok számára. A Claire támogatja a többszörös névtereket, azaz egy
UNIX féle fájlrendszerre hasonlító szerkezetet hozhatunk létre. Egy modulnak
két fontos attríbútuma van: a part_of, amely a szülő modul nevét tartalmazza,
illetve a uses, ami azoknak a moduloknak a listáját tartalmazza, amelyeket
el akarok érni a modulon belül. Például:
A current_module() utasítás az éppen aktuális modullal tér vissza. Megváltoztatni
egy új modulra a begin(module_name) utasítással lehet. Visszatérni pedig
az end(module_name) utasítással. Például:
A láthatósági szabályok a következők:
Az azonosítót a private előtaggal deklarálhatjuk private-nak.
Páldául:
Gyakori, hogy a modulokat fájlok halmazához akarjuk rendelni, azaz be akarjuk tölteni őket a modul névterébe. A Claire egy explicit reprezentációt biztosít számunkra, a made_of és a source attribútumok segítségével. A made_of(m) fájloknak a listája (sztringként leírva), amelyeket a modulhoz akarunk kötni, a source(m) pedig a közös könyvtár (ugyancsak sztringként megadva). A load/sload metódussal tölthetjük be automatikusan a helyes névtérbe a modul fájlait.