Author: Christian.Queinnec@lip6.fr

## Découpage et utilisation des bibliothèques

On découpe en trois parties l'ensemble des bibliothèques de la distribution d'Objective CAML. La première contient les déclarations globales préchargées. La deuxième, appelée bibliothèque standard, possède un bon degré de stabilité. Elle est subdivisée en quatre parties :

- structures de données
- entrées/sorties
- interface avec le système
- analyses lexicale et syntaxique

Enfin viennent les bibliothèques du troisième groupe qui apportent le plus souvent une extension au langage comme la bibliothèque `Graphics` (voir chapitre 5). Dans ce dernier ensemble, sont regroupées des bibliothèques portant sur les aspects suivants : expressions régulières (`Str`), arithmétique exacte (`Num`), appels au système Unix (`Unix`), processus légers (`Threads`) et chargement dynamique de code-octet (`Dynlink`).
Les entrées-sorties et l'interface avec le système de la bibliothèque standard sont compatibles sur différents systèmes d'exploitation comme Unix, Windows et MacOS. Ceci n'est pas toujours le cas des bibliothèques du troisième groupe. Il existe par ailleurs de nombreuses bibliothèques distribuées de manière indépendante de la distribution Objective CAML.

##### Usage et nommage

Pour utiliser une déclaration globale `f` d'un module simple de nom de fichier `nom.ml` et apparaissant dans le fichier `nom.mli` s'il existe, on la qualifie par `Nom.f`. Pour éviter cela, il est possible d'ouvrir la bibliothèque pour nommer directement `f` sans le faire précéder par le nom de sa bibliothèque.

### Syntaxe

open `Nom`

À partir de là, toutes les déclarations globales de la bibliothèque `Nom` seront considérées comme appartenant à l'environnement global. Si deux déclarations portent le même nom dans deux bibliothèques distinctes ouvertes, alors seule la dernière déclaration est visible. Pour pouvoir appeler la première, il sera nécessaire d'utiliser la notation pointée pour faire référence à celle-ci.