123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150moduleCI=Cstubs_internalsexternalportmidi_stub_1_Pm_Initialize:unit->int="portmidi_stub_1_Pm_Initialize"externalportmidi_stub_2_Pm_Terminate:unit->unit="portmidi_stub_2_Pm_Terminate"externalportmidi_stub_3_Pm_CountDevices:unit->int="portmidi_stub_3_Pm_CountDevices"externalportmidi_stub_4_Pm_GetDeviceInfo:int->CI.voidp="portmidi_stub_4_Pm_GetDeviceInfo"externalportmidi_stub_5_Pm_GetErrorText:int->CI.voidp="portmidi_stub_5_Pm_GetErrorText"externalportmidi_stub_6_Pm_OpenInput:_CI.fatptr->int->_CI.fatptr->int32->_CI.fatptr->_CI.fatptr->int="portmidi_stub_6_Pm_OpenInput_byte6""portmidi_stub_6_Pm_OpenInput"externalportmidi_stub_7_Pm_OpenOutput:_CI.fatptr->int->_CI.fatptr->int32->_CI.fatptr->_CI.fatptr->int32->int="portmidi_stub_7_Pm_OpenOutput_byte7""portmidi_stub_7_Pm_OpenOutput"externalportmidi_stub_8_Pm_Abort:_CI.fatptr->int="portmidi_stub_8_Pm_Abort"externalportmidi_stub_9_Pm_Close:_CI.fatptr->int="portmidi_stub_9_Pm_Close"externalportmidi_stub_10_Pm_Read:_CI.fatptr->_CI.fatptr->int32->int="portmidi_stub_10_Pm_Read"externalportmidi_stub_11_Pm_Write:_CI.fatptr->_CI.fatptr->int32->int="portmidi_stub_11_Pm_Write"externalportmidi_stub_12_Pm_WriteSysEx:_CI.fatptr->int32->_CI.fatptr->int="portmidi_stub_12_Pm_WriteSysEx"externalportmidi_stub_13_Pm_Poll:_CI.fatptr->int="portmidi_stub_13_Pm_Poll"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.Int)),"Pm_Poll"->(funx1->letCI.CPointerx2=x1inportmidi_stub_13_Pm_Pollx2)|Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"Pm_WriteSysEx"->(funx3x5x6->letCI.CPointerx7=x6inletCI.CPointerx4=x3inportmidi_stub_12_Pm_WriteSysExx4x5x7)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Returns(CI.PrimitiveCI.Int)))),"Pm_Write"->(funx8x10x12->letCI.CPointerx11=x10inletCI.CPointerx9=x8inportmidi_stub_11_Pm_Writex9x11x12)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Returns(CI.PrimitiveCI.Int)))),"Pm_Read"->(funx13x15x17->letCI.CPointerx16=x15inletCI.CPointerx14=x13inportmidi_stub_10_Pm_Readx14x16x17)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"Pm_Close"->(funx18->letCI.CPointerx19=x18inportmidi_stub_9_Pm_Closex19)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"Pm_Abort"->(funx20->letCI.CPointerx21=x20inportmidi_stub_8_Pm_Abortx21)|Function(CI.Pointer_,Function(CI.PrimitiveCI.Int,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Returns(CI.PrimitiveCI.Int)))))))),"Pm_OpenOutput"->(funx22x24x25x27x28x30x32->letCI.CPointerx31=x30inletCI.CPointerx29=x28inletCI.CPointerx26=x25inletCI.CPointerx23=x22inportmidi_stub_7_Pm_OpenOutputx23x24x26x27x29x31x32)|Function(CI.Pointer_,Function(CI.PrimitiveCI.Int,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Function(CI.Pointer_,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int))))))),"Pm_OpenInput"->(funx33x35x36x38x39x41->letCI.CPointerx42=x41inletCI.CPointerx40=x39inletCI.CPointerx37=x36inletCI.CPointerx34=x33inportmidi_stub_6_Pm_OpenInputx34x35x37x38x40x42)|Function(CI.PrimitiveCI.Int,Returns(CI.View{CI.ty=CI.Pointerx44;read=x45;_})),"Pm_GetErrorText"->(funx43->x45(CI.make_ptrx44(portmidi_stub_5_Pm_GetErrorTextx43)))|Function(CI.PrimitiveCI.Int,Returns(CI.Pointerx47)),"Pm_GetDeviceInfo"->(funx46->CI.make_ptrx47(portmidi_stub_4_Pm_GetDeviceInfox46))|Function(CI.Void,Returns(CI.PrimitiveCI.Int)),"Pm_CountDevices"->portmidi_stub_3_Pm_CountDevices|Function(CI.Void,ReturnsCI.Void),"Pm_Terminate"->portmidi_stub_2_Pm_Terminate|Function(CI.Void,Returns(CI.PrimitiveCI.Int)),"Pm_Initialize"->portmidi_stub_1_Pm_Initialize|_,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