module Locale: sig .. end
Camomile has a locale system similar to Java.
   A locale is a string with a form as
   "<LANG>_<COUNTRY>_<MODIFIER>..." where <LANG> is 
   a 2-letter ISO 639 language code, <COUNTRY> is a 2-letter ISO 3166
   country code.  Some field may not present.
type string 
Type of locales.
val read : string -> string -> (Pervasives.in_channel -> 'a) -> string -> 'a
read root suffix reader locale
   reads locale information using reader.  
   Locale data is supposed to reside in root directory with 
   the name locale.suffix.
   reader takes in_channel as an argument and read data from in_channel.
   If data is not found, then reader should raise Not_found.
   If the file is not found or reader raises Not_found, then 
   more generic locales are tried.
   For example, if fr_CA.suffix is not found, then read tries fr.suffix.
   If fr.suffix is also not found, then the file root.suffix is tried.
   Still the data is not found, then Not_found is raised.
val contain : string -> string -> bool
contain loc1 loc2 :
   If loc1 is contained in loc2 then true otherwise false.
   For example, "fr" is contained in "fr_CA" while "en_CA" 
   does not contain "fr"