<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Ocsigen_cache" rel="Chapter" href="Ocsigen_cache.html"> <link title="Ocsigen_lib_base" rel="Chapter" href="Ocsigen_lib_base.html"> <link title="Ocsigen_lib" rel="Chapter" href="Ocsigen_lib.html"> <link title="Ocsigen_config" rel="Chapter" href="Ocsigen_config.html"> <link title="Ocsigen_getcommandline" rel="Chapter" href="Ocsigen_getcommandline.html"> <link title="Ocsigen_messages" rel="Chapter" href="Ocsigen_messages.html"> <link title="Ocsigen_stream" rel="Chapter" href="Ocsigen_stream.html"> <link title="Ocsigen_loader" rel="Chapter" href="Ocsigen_loader.html"> <link title="Polytables" rel="Chapter" href="Polytables.html"> <link title="Http_headers" rel="Chapter" href="Http_headers.html"> <link title="Ocsigen_http_frame" rel="Chapter" href="Ocsigen_http_frame.html"> <link title="Ocsigen_headers" rel="Chapter" href="Ocsigen_headers.html"> <link title="Framepp" rel="Chapter" href="Framepp.html"> <link title="Ocsigen_http_com" rel="Chapter" href="Ocsigen_http_com.html"> <link title="Ocsigen_charset_mime" rel="Chapter" href="Ocsigen_charset_mime.html"> <link title="Ocsigen_senders" rel="Chapter" href="Ocsigen_senders.html"> <link title="Ocsigen_cookies" rel="Chapter" href="Ocsigen_cookies.html"> <link title="Ocsigen_extensions" rel="Chapter" href="Ocsigen_extensions.html"> <link title="Ocsigen_parseconfig" rel="Chapter" href="Ocsigen_parseconfig.html"> <link title="Ocsigen_http_client" rel="Chapter" href="Ocsigen_http_client.html"> <link title="Ocsigen_local_files" rel="Chapter" href="Ocsigen_local_files.html"> <link title="Ocsigen_server" rel="Chapter" href="Ocsigen_server.html"> <link title="Ocsigen_comet" rel="Chapter" href="Ocsigen_comet.html"> <link title="Accesscontrol" rel="Chapter" href="Accesscontrol.html"> <link title="Authbasic" rel="Chapter" href="Authbasic.html"> <link title="Ocsipersist" rel="Chapter" href="Ocsipersist.html"><title>Ocsigen_lib_base</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">exception</span> <span class="constructor">Ocsigen_Internal_Error</span> <span class="keyword">of</span> string<br> <span class="keyword">exception</span> <span class="constructor">Input_is_too_large</span><br> <span class="keyword">exception</span> <span class="constructor">Ocsigen_Bad_Request</span><br> <span class="keyword">exception</span> <span class="constructor">Ocsigen_Request_too_long</span><br> <span class="keyword">val</span> ( >>= ) : <span class="keywordsign">'</span>a <span class="constructor">Lwt</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Lwt</span>.t) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Lwt</span>.t<br> <span class="keyword">val</span> ( >|= ) : <span class="keywordsign">'</span>a <span class="constructor">Lwt</span>.t <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Lwt</span>.t<br> <span class="keyword">val</span> ( !! ) : <span class="keywordsign">'</span>a <span class="constructor">Lazy</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">external</span> id : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a = <span class="string">"%identity"</span><br> <span class="keyword">val</span> comp : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> curry : (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c<br> <span class="keyword">val</span> uncurry : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c<br> <span class="keyword">module</span> <span class="constructor">Tuple3</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> fst : <span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b * <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> snd : <span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b * <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> thd : <span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b * <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>c<br> <span class="keyword">end</span><br> <span class="keyword">type</span> poly<br> <span class="keyword">val</span> to_poly : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.poly<br> <span class="keyword">val</span> from_poly : <span class="constructor">Ocsigen_lib_base</span>.poly <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">type</span> yesnomaybe = <span class="constructor">Yes</span> <span class="keywordsign">|</span> <span class="constructor">No</span> <span class="keywordsign">|</span> <span class="constructor">Maybe</span><br> <span class="keyword">type</span> (<span class="keywordsign">'</span>a, <span class="keywordsign">'</span>b) leftright = <span class="constructor">Left</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="keywordsign">|</span> <span class="constructor">Right</span> <span class="keyword">of</span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> advert : string<br> <span class="keyword">module</span> <span class="constructor">Option</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t = <span class="keywordsign">'</span>a option<br> <span class="keyword">val</span> map :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t<br> <span class="keyword">val</span> get : (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> return : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t<br> <span class="keyword">val</span> bind :<br> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t <span class="keywordsign">-></span><br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t) <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t<br> <span class="keyword">val</span> to_list : <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Option</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">List</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> length : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> hd : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> tl : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> nth : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> rev : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> append : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> rev_append : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> concat : <span class="keywordsign">'</span>a list list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> flatten : <span class="keywordsign">'</span>a list list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list<br> <span class="keyword">val</span> mapi : (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list<br> <span class="keyword">val</span> rev_map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list<br> <span class="keyword">val</span> fold_left : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_right : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> iter2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> <span class="keywordsign">'</span>c list<br> <span class="keyword">val</span> rev_map2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> <span class="keywordsign">'</span>c list<br> <span class="keyword">val</span> fold_left2 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> <span class="keywordsign">'</span>c list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> fold_right2 :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>c) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> <span class="keywordsign">'</span>c <span class="keywordsign">-></span> <span class="keywordsign">'</span>c<br> <span class="keyword">val</span> for_all : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> for_all2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists2 : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> memq : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> find : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> filter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> find_all : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> partition : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list * <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> assoc : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> assq : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> mem_assoc : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem_assq : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> remove_assoc : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list<br> <span class="keyword">val</span> remove_assq : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list<br> <span class="keyword">val</span> split : (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list * <span class="keywordsign">'</span>b list<br> <span class="keyword">val</span> combine : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list<br> <span class="keyword">val</span> sort : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> stable_sort : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> fast_sort : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> merge : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> map_filter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b list<br> <span class="keyword">val</span> last : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> assoc_remove : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> <span class="keywordsign">'</span>b * (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list<br> <span class="keyword">val</span> remove_first_if_any : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> remove_first_if_any_q : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> remove_all_assoc : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a * <span class="keywordsign">'</span>b) list<br> <span class="keyword">val</span> chop : int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Clist</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a node<br> <span class="keyword">val</span> make : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.node<br> <span class="keyword">val</span> create : unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.t<br> <span class="keyword">val</span> insert :<br> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.node <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> remove : <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.node <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> value : <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.node <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> in_list : <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.node <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold_left :<br> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Clist</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Int</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">module</span> <span class="constructor">Table</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> key = int<br> <span class="keyword">type</span> +<span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> singleton : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> remove : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> merge :<br> (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>c t<br> <span class="keyword">val</span> compare : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> for_all : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> partition : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t * <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> bindings : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) list<br> <span class="keyword">val</span> min_binding : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> max_binding : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> split : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t * <span class="keywordsign">'</span>a option * <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> find : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t<br> <span class="keyword">val</span> mapi : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">String_base</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">external</span> length : string <span class="keywordsign">-></span> int = <span class="string">"%string_length"</span><br> <span class="keyword">external</span> get : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char = <span class="string">"%string_safe_get"</span><br> <span class="keyword">external</span> set : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> unit = <span class="string">"%string_safe_set"</span><br> <span class="keyword">external</span> create : int <span class="keywordsign">-></span> string = <span class="string">"caml_create_string"</span><br> <span class="keyword">val</span> make : int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> copy : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> sub : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> fill : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> blit : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> concat : string <span class="keywordsign">-></span> string list <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> iter : (char <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> iteri : (int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> map : (char <span class="keywordsign">-></span> char) <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> trim : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> escaped : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> index : string <span class="keywordsign">-></span> char <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> rindex : string <span class="keywordsign">-></span> char <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> index_from : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> rindex_from : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> contains : string <span class="keywordsign">-></span> char <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> contains_from : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> rcontains_from : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> uppercase : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> lowercase : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> capitalize : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> uncapitalize : string <span class="keywordsign">-></span> string<br> <span class="keyword">type</span> t = string<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">external</span> unsafe_get : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char = <span class="string">"%string_unsafe_get"</span><br> <span class="keyword">external</span> unsafe_set : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> unit<br> = <span class="string">"%string_unsafe_set"</span><br> <span class="keyword">external</span> unsafe_blit : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> unit<br> = <span class="string">"caml_blit_string"</span> <span class="string">"noalloc"</span><br> <span class="keyword">external</span> unsafe_fill : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> char <span class="keywordsign">-></span> unit<br> = <span class="string">"caml_fill_string"</span> <span class="string">"noalloc"</span><br> <span class="keyword">val</span> remove_spaces : string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> basic_sep : char <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string * string<br> <span class="keyword">val</span> sep : char <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string * string<br> <span class="keyword">val</span> split : ?multisep:bool <span class="keywordsign">-></span> char <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string list<br> <span class="keyword">val</span> may_append : string <span class="keywordsign">-></span> sep:string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> may_concat : string <span class="keywordsign">-></span> sep:string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> first_diff : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int <span class="keywordsign">-></span> int<br> <span class="keyword">module</span> <span class="constructor">Table</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> key = string<br> <span class="keyword">type</span> +<span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> singleton : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> remove : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> merge :<br> (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>c t<br> <span class="keyword">val</span> compare : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> for_all : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> partition : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t * <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> bindings : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) list<br> <span class="keyword">val</span> min_binding : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> max_binding : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> split : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t * <span class="keywordsign">'</span>a option * <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> find : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t<br> <span class="keyword">val</span> mapi : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Set</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> elt = string<br> <span class="keyword">type</span> t<br> <span class="keyword">val</span> empty : t<br> <span class="keyword">val</span> is_empty : t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> singleton : elt <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> remove : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> union : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> inter : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> diff : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> compare : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> subset : t <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (elt <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> for_all : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t<br> <span class="keyword">val</span> partition : (elt <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t * t<br> <span class="keyword">val</span> cardinal : t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> elements : t <span class="keywordsign">-></span> elt list<br> <span class="keyword">val</span> min_elt : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> max_elt : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> choose : t <span class="keywordsign">-></span> elt<br> <span class="keyword">val</span> split : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> t * bool * t<br> <span class="keyword">val</span> find : elt <span class="keywordsign">-></span> t <span class="keywordsign">-></span> elt<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Map</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> key = string<br> <span class="keyword">type</span> +<span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> is_empty : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mem : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> add : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> singleton : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> remove : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> merge :<br> (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="keywordsign">'</span>b option <span class="keywordsign">-></span> <span class="keywordsign">'</span>c option) <span class="keywordsign">-></span><br> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t <span class="keywordsign">-></span> <span class="keywordsign">'</span>c t<br> <span class="keyword">val</span> compare : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> int) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> equal : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> iter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> fold : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> for_all : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> exists : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> filter : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> partition : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> bool) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t * <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> cardinal : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> bindings : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> (key * <span class="keywordsign">'</span>a) list<br> <span class="keyword">val</span> min_binding : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> max_binding : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> choose : <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> key * <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> split : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t * <span class="keywordsign">'</span>a option * <span class="keywordsign">'</span>a t<br> <span class="keyword">val</span> find : key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t<br> <span class="keyword">val</span> mapi : (key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b t<br> <span class="keyword">end</span><br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Url_base</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">type</span> t = string<br> <span class="keyword">type</span> uri = string<br> <span class="keyword">val</span> make_absolute_url :<br> https:bool <span class="keywordsign">-></span><br> host:string <span class="keywordsign">-></span><br> port:int <span class="keywordsign">-></span><br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.uri <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.t<br> <span class="keyword">type</span> path = string list<br> <span class="keyword">val</span> remove_dotdot :<br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path<br> <span class="keyword">val</span> remove_end_slash : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> remove_internal_slash :<br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path<br> <span class="keyword">val</span> change_empty_list :<br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path<br> <span class="keyword">val</span> add_end_slash_if_missing :<br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path<br> <span class="keyword">val</span> remove_slash_at_end :<br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path<br> <span class="keyword">val</span> remove_slash_at_beginning :<br> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path <span class="keywordsign">-></span> <span class="constructor">Ocsigen_lib_base</span>.<span class="constructor">Url_base</span>.path<br> <span class="keyword">val</span> is_prefix_skip_end_slash : string list <span class="keywordsign">-></span> string list <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> split_fragment : string <span class="keywordsign">-></span> string * string option<br> <span class="keyword">end</span><br> <span class="keyword">module</span> <span class="constructor">Printexc</span> :<br> <span class="keyword">sig</span><br> <span class="keyword">val</span> to_string : exn <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> print : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> catch : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> <span class="keyword">val</span> print_backtrace : out_channel <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> get_backtrace : unit <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> record_backtrace : bool <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> backtrace_status : unit <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> register_printer : (exn <span class="keywordsign">-></span> string option) <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> raw_backtrace<br> <span class="keyword">val</span> get_raw_backtrace : unit <span class="keywordsign">-></span> raw_backtrace<br> <span class="keyword">val</span> print_raw_backtrace : out_channel <span class="keywordsign">-></span> raw_backtrace <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> raw_backtrace_to_string : raw_backtrace <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> get_callstack : int <span class="keywordsign">-></span> raw_backtrace<br> <span class="keyword">val</span> register_exn_printer : ((exn <span class="keywordsign">-></span> string) <span class="keywordsign">-></span> exn <span class="keywordsign">-></span> string) <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">val</span> debug : string <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span></code></body></html>