sig
type category =
LC_ALL
| LC_COLLATE
| LC_CTYPE
| LC_MESSAGES
| LC_MONETARY
| LC_NUMERIC
| LC_TIME
and numeric_lconv = {
decimal_point : string;
thousands_sep : string;
grouping : string;
}
and sign_pos =
SurroundBoth
| SignPrecedesBoth
| SignSucceedsBoth
| SignPrecedsCS
| SignSucceedsCS
| UnknownOrder
and monetary_lconv = {
int_curr_symbol : string;
currency_symbol : string;
decimal_point : string;
thousands_sep : string;
grouping : string;
positive_sign : string;
negative_sign : string;
int_frac_digits : int;
frac_digits : int;
p_cs_precedes : bool;
p_sep_by_space : bool;
n_cs_precedes : bool;
n_sep_by_space : bool;
p_sign_posn : Locale.sign_pos;
n_sign_posn : Locale.sign_pos;
}
external set : ?name:string -> Locale.category -> string option
= "stew_set_locale"
val set_from_env : Locale.category -> string option
val get : Locale.category -> string
external numeric_info : unit -> Locale.numeric_lconv = "stew_localeconv_n"
external monetary_info : unit -> Locale.monetary_lconv
= "stew_localeconv_m"
end