123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196moduleCI=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_ml_sizeof_mmdb_s:unit->Unsigned.size_t="mmdb_stub_6_mmdb_ml_sizeof_mmdb_s"externalmmdb_stub_7_mmdb_ml_alignof_mmdb_s:unit->Unsigned.size_t="mmdb_stub_7_mmdb_ml_alignof_mmdb_s"externalmmdb_stub_8_mmdb_ml_sizeof_mmdb_entry_data_s:unit->Unsigned.size_t="mmdb_stub_8_mmdb_ml_sizeof_mmdb_entry_data_s"externalmmdb_stub_9_mmdb_ml_alignof_mmdb_entry_data_s:unit->Unsigned.size_t="mmdb_stub_9_mmdb_ml_alignof_mmdb_entry_data_s"externalmmdb_stub_10_mmdb_ml_get_entry_data_has_data:_CI.fatptr->bool="mmdb_stub_10_mmdb_ml_get_entry_data_has_data"externalmmdb_stub_11_mmdb_ml_get_entry_data_type:_CI.fatptr->Unsigned.uint32="mmdb_stub_11_mmdb_ml_get_entry_data_type"externalmmdb_stub_12_mmdb_ml_get_entry_data_size:_CI.fatptr->Unsigned.uint32="mmdb_stub_12_mmdb_ml_get_entry_data_size"externalmmdb_stub_13_mmdb_ml_get_entry_data_utf8_string_value:_CI.fatptr->CI.voidp="mmdb_stub_13_mmdb_ml_get_entry_data_utf8_string_value"externalmmdb_stub_14_mmdb_ml_get_entry_data_double_value:_CI.fatptr->float="mmdb_stub_14_mmdb_ml_get_entry_data_double_value"externalmmdb_stub_15_mmdb_ml_get_entry_data_bytes_value:_CI.fatptr->CI.voidp="mmdb_stub_15_mmdb_ml_get_entry_data_bytes_value"externalmmdb_stub_16_mmdb_ml_get_entry_data_uint16_value:_CI.fatptr->Unsigned.uint16="mmdb_stub_16_mmdb_ml_get_entry_data_uint16_value"externalmmdb_stub_17_mmdb_ml_get_entry_data_uint32_value:_CI.fatptr->Unsigned.uint32="mmdb_stub_17_mmdb_ml_get_entry_data_uint32_value"externalmmdb_stub_18_mmdb_ml_get_entry_data_int32_value:_CI.fatptr->int32="mmdb_stub_18_mmdb_ml_get_entry_data_int32_value"externalmmdb_stub_19_mmdb_ml_get_entry_data_uint64_value:_CI.fatptr->Unsigned.uint64="mmdb_stub_19_mmdb_ml_get_entry_data_uint64_value"externalmmdb_stub_20_mmdb_ml_get_entry_data_boolean_value:_CI.fatptr->bool="mmdb_stub_20_mmdb_ml_get_entry_data_boolean_value"externalmmdb_stub_21_mmdb_ml_get_entry_data_float_value:_CI.fatptr->float="mmdb_stub_21_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_21_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_20_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_19_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_18_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_17_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_16_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_15_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_14_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_13_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_12_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_11_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_10_mmdb_ml_get_entry_data_has_datax26)|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_alignof_mmdb_entry_data_s"->mmdb_stub_9_mmdb_ml_alignof_mmdb_entry_data_s|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_sizeof_mmdb_entry_data_s"->mmdb_stub_8_mmdb_ml_sizeof_mmdb_entry_data_s|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_alignof_mmdb_s"->mmdb_stub_7_mmdb_ml_alignof_mmdb_s|Function(CI.Void,Returns(CI.PrimitiveCI.Size_t)),"mmdb_ml_sizeof_mmdb_s"->mmdb_stub_6_mmdb_ml_sizeof_mmdb_s|Function(CI.PrimitiveCI.Int,Returns(CI.Pointerx32)),"MMDB_strerror"->(funx31->CI.make_ptrx32(mmdb_stub_5_MMDB_strerrorx31))|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"MMDB_aget_value"->(funx33x35x37->letCI.CPointerx38=x37inletCI.CPointerx36=x35inletCI.CPointerx34=x33inmmdb_stub_4_MMDB_aget_valuex34x36x38)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.Struct_asx47))))),"MMDB_lookup_string"->(funx39x41x43x45->letCI.CPointerx46=x45inletCI.CPointerx44=x43inletCI.CPointerx42=x41inletCI.CPointerx40=x39inCI.make_structuredx47(mmdb_stub_3_MMDB_lookup_stringx40x42x44x46))|Function(CI.Pointer_,ReturnsCI.Void),"MMDB_close"->(funx48->letCI.CPointerx49=x48inmmdb_stub_2_MMDB_closex49)|Function(CI.Pointer_,Function(CI.PrimitiveCI.Int,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"MMDB_open"->(funx50x52x53->letCI.CPointerx54=x53inletCI.CPointerx51=x50inmmdb_stub_1_MMDB_openx51x52x54)|_,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