123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234moduleCI=Cstubs_internalsexternalmmdb_stub_1_MMDB_open:_CI.fatptr->int->_CI.fatptr->int="mmdb_stub_1_MMDB_open"externalmmdb_stub_2_MMDB_close:_CI.fatptr->unit="mmdb_stub_2_MMDB_close"externalmmdb_stub_3_MMDB_lookup_string:_CI.fatptr->_CI.fatptr->_CI.fatptr->_CI.fatptr->CI.managed_buffer="mmdb_stub_3_MMDB_lookup_string"externalmmdb_stub_4_MMDB_aget_value:_CI.fatptr->_CI.fatptr->_CI.fatptr->int="mmdb_stub_4_MMDB_aget_value"externalmmdb_stub_5_MMDB_strerror:int->CI.voidp="mmdb_stub_5_MMDB_strerror"externalmmdb_stub_6_MMDB_lib_version:unit->CI.voidp="mmdb_stub_6_MMDB_lib_version"externalmmdb_stub_7_mmdb_ml_sizeof_mmdb_s:unit->Unsigned.size_t="mmdb_stub_7_mmdb_ml_sizeof_mmdb_s"externalmmdb_stub_8_mmdb_ml_alignof_mmdb_s:unit->Unsigned.size_t="mmdb_stub_8_mmdb_ml_alignof_mmdb_s"externalmmdb_stub_9_mmdb_ml_sizeof_mmdb_entry_data_s:unit->Unsigned.size_t="mmdb_stub_9_mmdb_ml_sizeof_mmdb_entry_data_s"externalmmdb_stub_10_mmdb_ml_alignof_mmdb_entry_data_s:unit->Unsigned.size_t="mmdb_stub_10_mmdb_ml_alignof_mmdb_entry_data_s"externalmmdb_stub_11_mmdb_ml_language_count:_CI.fatptr->Unsigned.size_t="mmdb_stub_11_mmdb_ml_language_count"externalmmdb_stub_12_mmdb_ml_language_names:_CI.fatptr->CI.voidp="mmdb_stub_12_mmdb_ml_language_names"externalmmdb_stub_13_mmdb_ml_binary_format_major_version:_CI.fatptr->Unsigned.uint16="mmdb_stub_13_mmdb_ml_binary_format_major_version"externalmmdb_stub_14_mmdb_ml_binary_format_minor_version:_CI.fatptr->Unsigned.uint16="mmdb_stub_14_mmdb_ml_binary_format_minor_version"externalmmdb_stub_15_mmdb_ml_get_entry_data_has_data:_CI.fatptr->bool="mmdb_stub_15_mmdb_ml_get_entry_data_has_data"externalmmdb_stub_16_mmdb_ml_get_entry_data_type:_CI.fatptr->Unsigned.uint32="mmdb_stub_16_mmdb_ml_get_entry_data_type"externalmmdb_stub_17_mmdb_ml_get_entry_data_size:_CI.fatptr->Unsigned.uint32="mmdb_stub_17_mmdb_ml_get_entry_data_size"externalmmdb_stub_18_mmdb_ml_get_entry_data_utf8_string_value:_CI.fatptr->CI.voidp="mmdb_stub_18_mmdb_ml_get_entry_data_utf8_string_value"externalmmdb_stub_19_mmdb_ml_get_entry_data_double_value:_CI.fatptr->float="mmdb_stub_19_mmdb_ml_get_entry_data_double_value"externalmmdb_stub_20_mmdb_ml_get_entry_data_bytes_value:_CI.fatptr->CI.voidp="mmdb_stub_20_mmdb_ml_get_entry_data_bytes_value"externalmmdb_stub_21_mmdb_ml_get_entry_data_uint16_value:_CI.fatptr->Unsigned.uint16="mmdb_stub_21_mmdb_ml_get_entry_data_uint16_value"externalmmdb_stub_22_mmdb_ml_get_entry_data_uint32_value:_CI.fatptr->Unsigned.uint32="mmdb_stub_22_mmdb_ml_get_entry_data_uint32_value"externalmmdb_stub_23_mmdb_ml_get_entry_data_int32_value:_CI.fatptr->int32="mmdb_stub_23_mmdb_ml_get_entry_data_int32_value"externalmmdb_stub_24_mmdb_ml_get_entry_data_uint64_value:_CI.fatptr->Unsigned.uint64="mmdb_stub_24_mmdb_ml_get_entry_data_uint64_value"externalmmdb_stub_25_mmdb_ml_get_entry_data_boolean_value:_CI.fatptr->bool="mmdb_stub_25_mmdb_ml_get_entry_data_boolean_value"externalmmdb_stub_26_mmdb_ml_get_entry_data_float_value:_CI.fatptr->float="mmdb_stub_26_mmdb_ml_get_entry_data_float_value"type'aresult='atype'areturn='atype'afn=|Returns:'aCI.typ->'areturnfn|Function:'aCI.typ*'bfn->('a->'b)fnletmap_resultfx=fxletreturningt=Returnstlet(@->)fp=Function(f,p)letforeign:typeab.string->(a->b)fn->(a->b)=funnamet->matcht,namewith|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Float)),"mmdb_ml_get_entry_data_float_value"->(funx1->letCI.CPointerx2=x1inmmdb_stub_26_mmdb_ml_get_entry_data_float_valuex2)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Bool)),"mmdb_ml_get_entry_data_boolean_value"->(funx3->letCI.CPointerx4=x3inmmdb_stub_25_mmdb_ml_get_entry_data_boolean_valuex4)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint64_t)),"mmdb_ml_get_entry_data_uint64_value"->(funx5->letCI.CPointerx6=x5inmmdb_stub_24_mmdb_ml_get_entry_data_uint64_valuex6)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int32_t)),"mmdb_ml_get_entry_data_int32_value"->(funx7->letCI.CPointerx8=x7inmmdb_stub_23_mmdb_ml_get_entry_data_int32_valuex8)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint32_t)),"mmdb_ml_get_entry_data_uint32_value"->(funx9->letCI.CPointerx10=x9inmmdb_stub_22_mmdb_ml_get_entry_data_uint32_valuex10)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint16_t)),"mmdb_ml_get_entry_data_uint16_value"->(funx11->letCI.CPointerx12=x11inmmdb_stub_21_mmdb_ml_get_entry_data_uint16_valuex12)|Function(CI.Pointer_,Returns(CI.Pointerx15)),"mmdb_ml_get_entry_data_bytes_value"->(funx13->letCI.CPointerx14=x13inCI.make_ptrx15(mmdb_stub_20_mmdb_ml_get_entry_data_bytes_valuex14))|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Double)),"mmdb_ml_get_entry_data_double_value"->(funx16->letCI.CPointerx17=x16inmmdb_stub_19_mmdb_ml_get_entry_data_double_valuex17)|Function(CI.Pointer_,Returns(CI.Pointerx20)),"mmdb_ml_get_entry_data_utf8_string_value"->(funx18->letCI.CPointerx19=x18inCI.make_ptrx20(mmdb_stub_18_mmdb_ml_get_entry_data_utf8_string_valuex19))|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint32_t)),"mmdb_ml_get_entry_data_size"->(funx21->letCI.CPointerx22=x21inmmdb_stub_17_mmdb_ml_get_entry_data_sizex22)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint32_t)),"mmdb_ml_get_entry_data_type"->(funx23->letCI.CPointerx24=x23inmmdb_stub_16_mmdb_ml_get_entry_data_typex24)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Bool)),"mmdb_ml_get_entry_data_has_data"->(funx25->letCI.CPointerx26=x25inmmdb_stub_15_mmdb_ml_get_entry_data_has_datax26)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint16_t)),"mmdb_ml_binary_format_minor_version"->(funx27->letCI.CPointerx28=x27inmmdb_stub_14_mmdb_ml_binary_format_minor_versionx28)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Uint16_t)),"mmdb_ml_binary_format_major_version"->(funx29->letCI.CPointerx30=x29inmmdb_stub_13_mmdb_ml_binary_format_major_versionx30)|Function(CI.Pointer_,Returns(CI.Pointerx33)),"mmdb_ml_language_names"->(funx31->letCI.CPointerx32=x31inCI.make_ptrx33(mmdb_stub_12_mmdb_ml_language_namesx32))|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_language_count"->(funx34->letCI.CPointerx35=x34inmmdb_stub_11_mmdb_ml_language_countx35)|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_alignof_mmdb_entry_data_s"->mmdb_stub_10_mmdb_ml_alignof_mmdb_entry_data_s|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_sizeof_mmdb_entry_data_s"->mmdb_stub_9_mmdb_ml_sizeof_mmdb_entry_data_s|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_alignof_mmdb_s"->mmdb_stub_8_mmdb_ml_alignof_mmdb_s|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_sizeof_mmdb_s"->mmdb_stub_7_mmdb_ml_sizeof_mmdb_s|Function(CI.Void,Returns(CI.Pointerx41)),"MMDB_lib_version"->(funx40->CI.make_ptrx41(mmdb_stub_6_MMDB_lib_versionx40))|Function(CI.PrimitiveCI.Int,Returns(CI.Pointerx43)),"MMDB_strerror"->(funx42->CI.make_ptrx43(mmdb_stub_5_MMDB_strerrorx42))|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"MMDB_aget_value"->(funx44x46x48->letCI.CPointerx49=x48inletCI.CPointerx47=x46inletCI.CPointerx45=x44inmmdb_stub_4_MMDB_aget_valuex45x47x49)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.Struct_asx58))))),"MMDB_lookup_string"->(funx50x52x54x56->letCI.CPointerx57=x56inletCI.CPointerx55=x54inletCI.CPointerx53=x52inletCI.CPointerx51=x50inCI.make_structuredx58(mmdb_stub_3_MMDB_lookup_stringx51x53x55x57))|Function(CI.Pointer_,ReturnsCI.Void),"MMDB_close"->(funx59->letCI.CPointerx60=x59inmmdb_stub_2_MMDB_closex60)|Function(CI.Pointer_,Function(CI.PrimitiveCI.Int,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"MMDB_open"->(funx61x63x64->letCI.CPointerx65=x64inletCI.CPointerx62=x61inmmdb_stub_1_MMDB_openx62x63x65)|_,s->Printf.ksprintffailwith"No match for %s"sletforeign_value:typea.string->aCtypes.typ->aCtypes.ptr=funnamet->matcht,namewith|_,s->Printf.ksprintffailwith"No match for %s"s