Source: http://pauillac.inria.fr/~sagot/pub/TALN06a.pdf