123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205moduleCI=Cstubs_internalsexternalmpg123_stub_1_mpg123_init:unit->int="mpg123_stub_1_mpg123_init"externalmpg123_stub_2_mpg123_exit:unit->unit="mpg123_stub_2_mpg123_exit"externalmpg123_stub_3_mpg123_new:_CI.fatptr->_CI.fatptr->CI.voidp="mpg123_stub_3_mpg123_new"externalmpg123_stub_4_mpg123_delete:_CI.fatptr->unit="mpg123_stub_4_mpg123_delete"externalmpg123_stub_5_mpg123_plain_strerror:int->CI.voidp="mpg123_stub_5_mpg123_plain_strerror"externalmpg123_stub_6_mpg123_strerror:_CI.fatptr->CI.voidp="mpg123_stub_6_mpg123_strerror"externalmpg123_stub_7_mpg123_errcode:_CI.fatptr->int="mpg123_stub_7_mpg123_errcode"externalmpg123_stub_8_mpg123_decoders:unit->CI.voidp="mpg123_stub_8_mpg123_decoders"externalmpg123_stub_9_mpg123_supported_decoders:unit->CI.voidp="mpg123_stub_9_mpg123_supported_decoders"externalmpg123_stub_10_mpg123_decoder:_CI.fatptr->_CI.fatptr->int="mpg123_stub_10_mpg123_decoder"externalmpg123_stub_11_mpg123_current_decoder:_CI.fatptr->CI.voidp="mpg123_stub_11_mpg123_current_decoder"externalmpg123_stub_12_mpg123_open:_CI.fatptr->_CI.fatptr->int="mpg123_stub_12_mpg123_open"externalmpg123_stub_13_mpg123_close:_CI.fatptr->int="mpg123_stub_13_mpg123_close"externalmpg123_stub_14_mpg123_read:_CI.fatptr->_CI.fatptr->int->_CI.fatptr->int="mpg123_stub_14_mpg123_read"externalmpg123_stub_15_mpg123_scan:_CI.fatptr->int="mpg123_stub_15_mpg123_scan"externalmpg123_stub_16_mpg123_meta_check:_CI.fatptr->int="mpg123_stub_16_mpg123_meta_check"externalmpg123_stub_17_mpg123_length:_CI.fatptr->int="mpg123_stub_17_mpg123_length"externalmpg123_stub_18_mpg123_meta_free:_CI.fatptr->unit="mpg123_stub_18_mpg123_meta_free"externalmpg123_stub_19_mpg123_id3:_CI.fatptr->_CI.fatptr->_CI.fatptr->int="mpg123_stub_19_mpg123_id3"externalmpg123_stub_20_mpg123_getformat:_CI.fatptr->_CI.fatptr->_CI.fatptr->_CI.fatptr->int="mpg123_stub_20_mpg123_getformat"externalmpg123_stub_21_mpg123_format_none:_CI.fatptr->int="mpg123_stub_21_mpg123_format_none"externalmpg123_stub_22_mpg123_format:_CI.fatptr->int->int->int->int="mpg123_stub_22_mpg123_format"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_,Function(CI.PrimitiveCI.Int,Function(CI.PrimitiveCI.Int,Function(CI.PrimitiveCI.Int,Returns(CI.PrimitiveCI.Int))))),"mpg123_format"->(funx1x3x4x5->letCI.CPointerx2=x1inmpg123_stub_22_mpg123_formatx2x3x4x5)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"mpg123_format_none"->(funx6->letCI.CPointerx7=x6inmpg123_stub_21_mpg123_format_nonex7)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int))))),"mpg123_getformat"->(funx8x10x12x14->letCI.CPointerx15=x14inletCI.CPointerx13=x12inletCI.CPointerx11=x10inletCI.CPointerx9=x8inmpg123_stub_20_mpg123_getformatx9x11x13x15)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"mpg123_id3"->(funx16x18x20->letCI.CPointerx21=x20inletCI.CPointerx19=x18inletCI.CPointerx17=x16inmpg123_stub_19_mpg123_id3x17x19x21)|Function(CI.Pointer_,ReturnsCI.Void),"mpg123_meta_free"->(funx22->letCI.CPointerx23=x22inmpg123_stub_18_mpg123_meta_freex23)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"mpg123_length"->(funx24->letCI.CPointerx25=x24inmpg123_stub_17_mpg123_lengthx25)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"mpg123_meta_check"->(funx26->letCI.CPointerx27=x26inmpg123_stub_16_mpg123_meta_checkx27)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"mpg123_scan"->(funx28->letCI.CPointerx29=x28inmpg123_stub_15_mpg123_scanx29)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int))))),"mpg123_read"->(funx30x32x34x35->letCI.CPointerx36=x35inletCI.CPointerx33=x32inletCI.CPointerx31=x30inmpg123_stub_14_mpg123_readx31x33x34x36)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"mpg123_close"->(funx37->letCI.CPointerx38=x37inmpg123_stub_13_mpg123_closex38)|Function(CI.Pointer_,Function(CI.View{CI.ty=CI.Pointer_;write=x42;_},Returns(CI.PrimitiveCI.Int))),"mpg123_open"->(funx39x41->letCI.CPointerx44=x42x41inletCI.CPointerx40=x39inletx43=x44inmpg123_stub_12_mpg123_openx40x43)|Function(CI.Pointer_,Returns(CI.View{CI.ty=CI.Pointerx47;read=x48;_})),"mpg123_current_decoder"->(funx45->letCI.CPointerx46=x45inx48(CI.make_ptrx47(mpg123_stub_11_mpg123_current_decoderx46)))|Function(CI.Pointer_,Function(CI.View{CI.ty=CI.Pointer_;write=x52;_},Returns(CI.PrimitiveCI.Int))),"mpg123_decoder"->(funx49x51->letCI.CPointerx54=x52x51inletCI.CPointerx50=x49inletx53=x54inmpg123_stub_10_mpg123_decoderx50x53)|Function(CI.Void,Returns(CI.Pointerx56)),"mpg123_supported_decoders"->(funx55->CI.make_ptrx56(mpg123_stub_9_mpg123_supported_decodersx55))|Function(CI.Void,Returns(CI.Pointerx58)),"mpg123_decoders"->(funx57->CI.make_ptrx58(mpg123_stub_8_mpg123_decodersx57))|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"mpg123_errcode"->(funx59->letCI.CPointerx60=x59inmpg123_stub_7_mpg123_errcodex60)|Function(CI.Pointer_,Returns(CI.View{CI.ty=CI.Pointerx63;read=x64;_})),"mpg123_strerror"->(funx61->letCI.CPointerx62=x61inx64(CI.make_ptrx63(mpg123_stub_6_mpg123_strerrorx62)))|Function(CI.PrimitiveCI.Int,Returns(CI.View{CI.ty=CI.Pointerx66;read=x67;_})),"mpg123_plain_strerror"->(funx65->x67(CI.make_ptrx66(mpg123_stub_5_mpg123_plain_strerrorx65)))|Function(CI.Pointer_,ReturnsCI.Void),"mpg123_delete"->(funx68->letCI.CPointerx69=x68inmpg123_stub_4_mpg123_deletex69)|Function(CI.View{CI.ty=CI.Pointer_;write=x71;_},Function(CI.Pointer_,Returns(CI.Pointerx76))),"mpg123_new"->(funx70x74->letCI.CPointerx75=x74inletCI.CPointerx73=x71x70inletx72=x73inCI.make_ptrx76(mpg123_stub_3_mpg123_newx72x75))|Function(CI.Void,ReturnsCI.Void),"mpg123_exit"->mpg123_stub_2_mpg123_exit|Function(CI.Void,Returns(CI.PrimitiveCI.Int)),"mpg123_init"->mpg123_stub_1_mpg123_init|_,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