<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="Objective Caml" extensions="*.ml;*.mli" mimetype="text/x-ocaml" section="Sources" version="12" priority="10" kateversion="6.22" author="Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)" license="LGPL"><highlighting><list name="qtest keywords"><item>as</item><item>forall</item><item>in</item></list><list name="Keywords"><item>and</item><item>as</item><item>asr</item><item>assert</item><item>begin</item><item>class</item><item>constraint</item><item>do</item><item>done</item><item>downto</item><item>else</item><item>end</item><item>exception</item><item>external</item><item>false</item><item>for</item><item>fun</item><item>function</item><item>functor</item><item>if</item><item>in</item><item>include</item><item>inherit</item><item>initializer</item><item>land</item><item>lazy</item><item>let</item><item>lor</item><item>lsl</item><item>lsr</item><item>lxor</item><item>match</item><item>method</item><item>mod</item><item>module</item><item>mutable</item><item>new</item><item>nonrec</item><item>object</item><item>of</item><item>open</item><item>or</item><item>parser</item><item>private</item><item>rec</item><item>sig</item><item>struct</item><item>then</item><item>to</item><item>true</item><item>try</item><item>type</item><item>val</item><item>virtual</item><item>when</item><item>while</item><item>with</item></list><list name="Revised Syntax Keywords"><item>declare</item><item>value</item><item>where</item></list><list name="Pervasive Functions"><item>abs</item><item>abs_float</item><item>acos</item><item>acosh</item><item>asin</item><item>asinh</item><item>at_exit</item><item>atan</item><item>atan2</item><item>atanh</item><item>bool_of_string</item><item>bool_of_string_opt</item><item>ceil</item><item>char_of_int</item><item>classify_float</item><item>close_in</item><item>close_in_noerr</item><item>close_out</item><item>close_out_noerr</item><item>compare</item><item>copysign</item><item>cos</item><item>cosh</item><item>decr</item><item>do_at_exit</item><item>do_domain_local_at_exit</item><item>epsilon_float</item><item>exp</item><item>expm1</item><item>float</item><item>float_of_int</item><item>float_of_string</item><item>float_of_string_opt</item><item>floor</item><item>flush</item><item>flush_all</item><item>format_of_string</item><item>frexp</item><item>fst</item><item>hypot</item><item>ignore</item><item>in_channel_length</item><item>incr</item><item>infinity</item><item>input</item><item>input_binary_int</item><item>input_byte</item><item>input_char</item><item>input_line</item><item>input_value</item><item>int_of_char</item><item>int_of_float</item><item>int_of_string</item><item>int_of_string_opt</item><item>ldexp</item><item>lnot</item><item>log</item><item>log10</item><item>log1p</item><item>max</item><item>max_float</item><item>max_int</item><item>min</item><item>min_float</item><item>min_int</item><item>mod_float</item><item>modf</item><item>nan</item><item>neg_infinity</item><item>not</item><item>open_in</item><item>open_in_bin</item><item>open_in_gen</item><item>open_out</item><item>open_out_bin</item><item>open_out_gen</item><item>out_channel_length</item><item>output</item><item>output_binary_int</item><item>output_byte</item><item>output_bytes</item><item>output_char</item><item>output_string</item><item>output_substring</item><item>output_value</item><item>pos_in</item><item>pos_out</item><item>pred</item><item>prerr_bytes</item><item>prerr_char</item><item>prerr_endline</item><item>prerr_float</item><item>prerr_int</item><item>prerr_newline</item><item>prerr_string</item><item>print_bytes</item><item>print_char</item><item>print_endline</item><item>print_float</item><item>print_int</item><item>print_newline</item><item>print_string</item><item>read_float</item><item>read_float_opt</item><item>read_int</item><item>read_int_opt</item><item>read_line</item><item>really_input</item><item>really_input_string</item><item>ref</item><item>seek_in</item><item>seek_out</item><item>set_binary_mode_in</item><item>set_binary_mode_out</item><item>sin</item><item>sinh</item><item>snd</item><item>sqrt</item><item>stderr</item><item>stdin</item><item>stdout</item><item>string_of_bool</item><item>string_of_float</item><item>string_of_format</item><item>string_of_int</item><item>succ</item><item>tan</item><item>tanh</item><item>truncate</item><item>unsafe_really_input</item><item>valid_float_lexem</item></list><list name="Flow Control Functions"><item>exit</item><item>failwith</item><item>invalid_arg</item><item>raise</item><item>raise_notrace</item></list><list name="Pervasive Types"><item>array</item><item>bool</item><item>bytes</item><item>char</item><item>exn</item><item>float</item><item>format</item><item>format4</item><item>format6</item><item>fpclass</item><item>in_channel</item><item>int</item><item>int32</item><item>int64</item><item>lazy_t</item><item>list</item><item>nativeint</item><item>open_flag</item><item>option</item><item>out_channel</item><item>ref</item><item>result</item><item>string</item><item>unit</item></list><list name="Pervasive Variant Tags"><item>Error</item><item>FP_infinite</item><item>FP_nan</item><item>FP_normal</item><item>FP_subnormal</item><item>FP_zero</item><item>None</item><item>Ok</item><item>Open_append</item><item>Open_binary</item><item>Open_creat</item><item>Open_excl</item><item>Open_nonblock</item><item>Open_rdonly</item><item>Open_text</item><item>Open_trunc</item><item>Open_wronly</item><item>Some</item></list><list name="Pervasive Exceptions"><item>Assert_failure</item><item>Division_by_zero</item><item>End_of_file</item><item>Exit</item><item>Failure</item><item>Invalid_argument</item><item>Match_failure</item><item>Not_found</item><item>Out_of_memory</item><item>Stack_overflow</item><item>Sys_blocked_io</item><item>Sys_error</item><item>Undefined_recursive_module</item></list><list name="Standard Library Modules"><item>Arg</item><item>Array</item><item>ArrayLabels</item><item>Atomic</item><item>Bigarray</item><item>Bool</item><item>Buffer</item><item>Bytes</item><item>BytesLabels</item><item>Callback</item><item>Char</item><item>Complex</item><item>Condition</item><item>Digest</item><item>Domain</item><item>Effect</item><item>Either</item><item>Ephemeron</item><item>Filename</item><item>Format</item><item>Fun</item><item>Gc</item><item>Genlex</item><item>Hashtbl</item><item>In_channel</item><item>Int</item><item>Int32</item><item>Int64</item><item>Lazy</item><item>Lexing</item><item>List</item><item>ListLabels</item><item>Map</item><item>Marshal</item><item>MoreLabels</item><item>Mutex</item><item>Nativeint</item><item>Obj</item><item>Oo</item><item>Option</item><item>Out_channel</item><item>Parsing</item><item>Printexc</item><item>Printf</item><item>Queue</item><item>Random</item><item>Scanf</item><item>Semaphore</item><item>Seq</item><item>Set</item><item>Sort</item><item>Spacetime</item><item>Stack</item><item>StdLabels</item><item>Stream</item><item>String</item><item>StringLabels</item><item>Sys</item><item>Type</item><item>Uchar</item><item>Unit</item><item>Weak</item></list><contexts><context name="Code" attribute="Operator"><StringDetect String="(**)" attribute="Comment"/><StringDetect String="(**" attribute="Comment" context="Ocamldoc" beginRegion="comment"/><RegExpr String="\(\*\$(T|Q|R|=)" attribute="qtest body style" context="qtest header" beginRegion="comment"/><StringDetect String="(*" attribute="Comment" context="Comment" beginRegion="comment"/><RegExpr String="#[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*.*$" attribute="Directive" firstNonSpace="1"/><DetectChar char='"' attribute="String" context="String"/><RegExpr String="{[a-z_]*\|" attribute="Quoted String" context="Quoted String"/><RegExpr String="'((\\[ntbr'&#34; \\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2}|\\o[0-3][0-7]{2})|[^'])'" attribute="Character"/><StringDetect String="&lt;&lt;" attribute="Camlp4 Quotation" context="Camlp4 Quotation"/><RegExpr String="&lt;:[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*&lt;" attribute="Camlp4 Quotation" context="Camlp4 Quotation"/><DetectChar char="[" attribute="Operator" context="Nested Code 1"/><DetectChar char="{" attribute="Operator" context="Nested Code 2"/><keyword String="Keywords" attribute="Keyword"/><keyword String="Revised Syntax Keywords" attribute="Revised Syntax Keyword"/><keyword String="Flow Control Functions" attribute="Flow Control Functions"/><keyword String="Pervasive Functions" attribute="Pervasive Functions"/><keyword String="Pervasive Types" attribute="Pervasive Types"/><keyword String="Pervasive Exceptions" attribute="Pervasive Exceptions"/><keyword String="Pervasive Variant Tags" attribute="Pervasive Variant Tags"/><keyword String="Standard Library Modules" attribute="Standard Library Modules"/><RegExpr String="[a-z\300-\326\330-\337_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*" attribute="Lowercase Identifier"/><RegExpr String="`?[A-Z\340-\366\370-\377][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*" attribute="Uppercase Identifier"/><RegExpr String="-?0[oO][0-7][0-7_]*[lLn]?" attribute="Octal"/><RegExpr String="-?0[bB][01][01_]*[lLn]?" attribute="Binary"/><RegExpr String="-?([0-9][0-9_]*(\.[0-9][0-9_]*([eE][-+]?[0-9][0-9_]*)?|[eE][-+]?[0-9][0-9_]*)|0[xX][0-9A-Fa-f][0-9A-Fa-f_]*(\.[0-9A-Fa-f_]+)?[pP][+-][0-9][0-9_]*)" attribute="Float"/><RegExpr String="-?0[xX][0-9A-Fa-f][0-9A-Fa-f_]*[lLn]?" attribute="Hexadecimal"/><RegExpr String="-?[0-9][0-9_]*[lLn]?" attribute="Decimal"/><IncludeRules context="Unmatched Closing Brackets"/></context><context name="Nested Ocamldoc" attribute="Operator"><DetectChar char="}" attribute="Ocamldoc Markup" context="#pop"/><StringDetect String="*)" attribute="Mismatched Brackets" context="#pop"/><IncludeRules context="Ocamldoc" includeAttrib="1"/></context><context name="Camlp4 Quotation" attribute="Camlp4 Quotation"><StringDetect String=">>" attribute="Camlp4 Quotation" context="#pop"/><StringDetect String="&lt;&lt;" attribute="Camlp4 Quotation" context="Camlp4 Quotation"/><RegExpr String="&lt;:[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*&lt;" attribute="Camlp4 Quotation" context="Camlp4 Quotation"/><RegExpr String="\\(\\|>>|&lt;&lt;|&lt;:[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*&lt;)" attribute="Escaped Characters"/></context><context name="Comment" attribute="Comment"><StringDetect String="*)" attribute="Comment" context="#pop" endRegion="comment"/><StringDetect String="(*" attribute="Comment" context="Comment" beginRegion="comment"/><DetectChar char='"' attribute="String in Comment" context="String in Comment"/><DetectSpaces/><IncludeRules context="##Comments"/></context><context name="Ocamldoc" attribute="Ocamldoc Text"><StringDetect String="*)" attribute="Comment" context="#pop" endRegion="comment"/><RegExpr String="\\." attribute="Escaped Characters"/><StringDetect String="(**)" attribute="Comment"/><StringDetect String="(**" attribute="Comment" context="Ocamldoc" beginRegion="comment"/><StringDetect String="(*" attribute="Comment" context="Comment" beginRegion="comment"/><DetectChar char='"' attribute="String in Comment" context="String in Comment"/><DetectChar char="[" attribute="Ocamldoc Markup" context="Ocamldoc Code"/><StringDetect String="{[" attribute="Ocamldoc Markup" context="Ocamldoc Preformatted"/><StringDetect String="{%" attribute="Ocamldoc Markup" context="Ocamldoc LaTeX"/><StringDetect String="{^" attribute="Ocamldoc Markup" context="Nested Ocamldoc"/><RegExpr String="[{]v(\s|$)" attribute="Ocamldoc Markup" context="Ocamldoc Verbatim"/><RegExpr String="[{]b(\s|$)" attribute="Ocamldoc Markup" context="Ocamldoc Bold"/><RegExpr String="[{]i(\s|$)" attribute="Ocamldoc Markup" context="Ocamldoc Italic"/><RegExpr String="[{]e(\s|$)" attribute="Ocamldoc Markup" context="Ocamldoc Emphasised"/><RegExpr String="[{][0-9]+(:[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*)?\s" attribute="Ocamldoc Markup" context="Ocamldoc Heading"/><RegExpr String="[{][{]:[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*[}]" attribute="Ocamldoc Markup" context="Ocamldoc Link"/><RegExpr String="[{]!([a-z]+:)?" attribute="Ocamldoc Markup" context="Ocamldoc References"/><RegExpr String="[{][a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*(\s|$)" attribute="Ocamldoc Markup" context="Nested Ocamldoc"/><RegExpr String="@see\s*(&lt;[^>]*>|&#34;[^&#34;]*&#34;|'[^']*')" attribute="Ocamldoc Markup"/><RegExpr String="@(param|raise)\s*" attribute="Ocamldoc Markup" context="Ocamldoc Identifier"/><RegExpr String="@(author|before|deprecated|return|since|version)" attribute="Ocamldoc Markup"/><RegExpr String="@[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*" attribute="Ocamldoc Custom Tag"/><RegExpr String="^[ &#9;]*-\s" attribute="Ocamldoc Markup" column="0"/><IncludeRules context="Unmatched Closing Brackets"/></context><context name="String" attribute="String"><DetectChar char='"' attribute="String" context="#pop"/><RegExpr String="(\\[ntbr'&#34; \\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2}|\\o[0-3][0-7]{2})|\\$|\\u{[0-9A-Fa-f]+}" attribute="Escaped Characters"/></context><context name="String in Comment" attribute="String in Comment"><DetectChar char='"' attribute="String in Comment" context="#pop"/><IncludeRules context="String"/></context><context name="Unmatched Closing Brackets" attribute="Operator"><StringDetect String="*)" attribute="Mismatched Brackets" context="#pop"/><StringDetect String="v}" attribute="Mismatched Brackets"/><StringDetect String="]}" attribute="Mismatched Brackets"/><StringDetect String="%}" attribute="Mismatched Brackets"/><AnyChar String="]}" attribute="Mismatched Brackets"/><RegExpr String="\|[a-z_]*}" attribute="Mismatched Brackets" context="#pop"/></context><context name="qtest" attribute="qtest body style"><StringDetect String="*)" attribute="qtest body style" context="#pop" endRegion="comment"/><IncludeRules context="Code" includeAttrib="1"/></context><context name="Nested Code 1" attribute="Operator"><DetectChar char="]" attribute="Operator" context="#pop"/><IncludeRules context="Code" includeAttrib="1"/></context><context name="Nested Code 2" attribute="Operator"><DetectChar char="}" attribute="Operator" context="#pop"/><IncludeRules context="Code" includeAttrib="1"/></context><context name="Ocamldoc Bold" attribute="Ocamldoc Bold"><IncludeRules context="Nested Ocamldoc"/></context><context name="Ocamldoc Code" attribute="Operator"><DetectChar char="]" attribute="Ocamldoc Markup" context="#pop"/><IncludeRules context="Code" includeAttrib="1"/></context><context name="Ocamldoc Emphasised" attribute="Ocamldoc Emphasised"><IncludeRules context="Nested Ocamldoc"/></context><context name="Ocamldoc Heading" attribute="Ocamldoc Heading"><IncludeRules context="Nested Ocamldoc"/></context><context name="Ocamldoc Identifier" attribute="Mismatched Brackets"><RegExpr String="[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*(\.[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*)*" attribute="Ocamldoc Link" context="#pop"/><StringDetect String="*)" attribute="Mismatched Brackets" context="#pop"/><DetectSpaces/></context><context name="Ocamldoc Italic" attribute="Ocamldoc Italic"><IncludeRules context="Nested Ocamldoc"/></context><context name="Ocamldoc LaTeX" attribute="Ocamldoc LaTeX"><StringDetect String="%}" attribute="Ocamldoc Markup" context="#pop"/><IncludeRules context="##LaTeX"/></context><context name="Ocamldoc Link" attribute="Ocamldoc Link"><IncludeRules context="Nested Ocamldoc"/></context><context name="Ocamldoc Preformatted" attribute="Operator"><StringDetect String="]}" attribute="Ocamldoc Markup" context="#pop"/><IncludeRules context="Code" includeAttrib="1"/></context><context name="Ocamldoc References" attribute="Mismatched Brackets"><DetectChar char="}" attribute="Ocamldoc Markup" context="#pop"/><StringDetect String="*)" attribute="Mismatched Brackets" context="#pop"/><RegExpr String="[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*(\.[a-z\300-\326\330-\337A-Z\340-\366\370-\377_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*)*" attribute="Ocamldoc Link"/><DetectSpaces attribute="Ocamldoc Markup"/></context><context name="Ocamldoc Verbatim" attribute="Ocamldoc Text"><StringDetect String="v}" attribute="Ocamldoc Markup" context="#pop"/></context><context name="Quoted String" attribute="Quoted String"><RegExpr String="\|[a-z_]*}" attribute="Quoted String" context="#pop"/></context><context name="qtest header" attribute="Operator" lineEndContext="qtest"><keyword String="qtest keywords" attribute="Keyword"/><DetectChar char="&amp;" attribute="qtest param style" context="qtest param"/><RegExpr String="[a-z\300-\326\330-\337_][a-z\300-\326\330-\337A-Z\340-\366\370-\3770-9_']*" attribute="qtest header style"/></context><context name="qtest param" attribute="qtest param style" lineEndContext="qtest"/></contexts><itemDatas><itemData name="Operator" defStyleNum="dsNormal"/><itemData name="Keyword" defStyleNum="dsKeyword"/><itemData name="Revised Syntax Keyword" defStyleNum="dsNormal"/><itemData name="Lowercase Identifier" defStyleNum="dsNormal"/><itemData name="Uppercase Identifier" defStyleNum="dsNormal" italic="1"/><itemData name="Flow Control Functions" defStyleNum="dsDataType"/><itemData name="Pervasive Functions" defStyleNum="dsDataType"/><itemData name="Pervasive Types" defStyleNum="dsDataType"/><itemData name="Pervasive Exceptions" defStyleNum="dsDataType" italic="1"/><itemData name="Pervasive Variant Tags" defStyleNum="dsDataType" italic="1"/><itemData name="Standard Library Modules" defStyleNum="dsDataType" italic="1"/><itemData name="Decimal" defStyleNum="dsDecVal"/><itemData name="Hexadecimal" defStyleNum="dsBaseN"/><itemData name="Octal" defStyleNum="dsBaseN"/><itemData name="Binary" defStyleNum="dsBaseN"/><itemData name="Float" defStyleNum="dsFloat"/><itemData name="Character" defStyleNum="dsChar"/><itemData name="String" defStyleNum="dsString"/><itemData name="Quoted String" defStyleNum="dsString"/><itemData name="Camlp4 Quotation" defStyleNum="dsString"/><itemData name="Escaped Characters" defStyleNum="dsChar"/><itemData name="Directive" defStyleNum="dsOthers"/><itemData name="Comment" defStyleNum="dsComment"/><itemData name="String in Comment" defStyleNum="dsComment" bold="1"/><itemData name="Mismatched Brackets" defStyleNum="dsError"/><itemData name="Ocamldoc Markup" defStyleNum="dsOthers"/><itemData name="Ocamldoc Text" defStyleNum="dsComment" italic="0"/><itemData name="Ocamldoc Bold" defStyleNum="dsComment" italic="0" bold="1"/><itemData name="Ocamldoc Italic" defStyleNum="dsComment" italic="1" bold="0"/><itemData name="Ocamldoc Emphasised" defStyleNum="dsComment" italic="1" bold="1"/><itemData name="Ocamldoc Heading" defStyleNum="dsComment" italic="0" bold="1" underline="1"/><itemData name="Ocamldoc Link" defStyleNum="dsComment" italic="0" underline="1" color="#0000ff"/><itemData name="Ocamldoc LaTeX" defStyleNum="dsComment" italic="0"/><itemData name="Ocamldoc Custom Tag" defStyleNum="dsOthers" italic="1"/><itemData name="qtest header style" defStyleNum="dsNormal" backgroundColor="#FFEBE0"/><itemData name="qtest param style" defStyleNum="dsNormal" italic="1" color="#7788FF"/><itemData name="qtest body style" defStyleNum="dsNormal" bold="1" backgroundColor="#D6FFEB"/></itemDatas></highlighting><general><keywords casesensitive="1"/><comments><comment name="multiLine" start="(*" end="*)" region="comment"/></comments></general></language>