(** Catalog for all function *) module C = Map.Make( struct type t = UTF8.t let compare a b = Pervasives.compare (String.uppercase_ascii @@ UTF8.to_utf8string a) (String.uppercase_ascii @@ UTF8.to_utf8string b) end ) let catalog = ref C.empty let register name f = catalog := C.add name f !catalog let eval name params = let func = C.find name !catalog in func params