
<< L'uniformité du style est plus importante que le style lui-même. >>
(Kernigan & Pike, The Practice of Programming)

Mode Emacs
==========
   Tuareg, que l'on trouve ici :  http://www.prism.uvsq.fr/~acohen/tuareg/

   avec le réglage suivant :     (setq tuareg-in-indent 2)

Types récursifs et filtrages
============================
   Une barre de séparation y compris sur le premier constructeur

type t =
  | A 
  | B of machin

match expr with
  | A -> ...
  | B x -> ...

Remarque : à partir de la 8.2 environ, la tendance est à utiliser le
format suivant qui permet de limiter l'escalade d'indentation tout en
produisant un aspect visuel intéressant de bloc :

type t =
| A 
| B of machin

match expr with
| A -> ...
| B x -> ...

let f expr = match expr with
| A -> ...
| B x -> ...

let f expr = function
| A -> ...
| B x -> ...

Le deuxième cas est obtenu sous tuareg avec les réglages

  (setq tuareg-with-indent 0)
  (setq tuareg-function-indent 0)
  (setq tuareg-let-always-indent nil) /// notons que cette dernière est bien 
                                      /// pour les let mais pas pour les let-in

Conditionnelles
===============
  if condition then
    premier-cas
  else
    deuxieme-cas

  Si effets de bord dans les branches, utilisez begin ... end et non des
  parenthèses i.e.

  if condition then begin
    instr1;
    instr2
  end else begin
    instr3;
    instr4
  end
    
  Si la première branche lève une exception, évitez le else i.e.

    if condition then                     if condition then error "machin";
      error "machin"          ----->      suite
    else
      suite

  
