123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155moduleCI=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"externalportmidi_stub_14_Pt_Time:unit->int32="portmidi_stub_14_Pt_Time"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.Void,Returns(CI.PrimitiveCI.Int32_t)),"Pt_Time"->portmidi_stub_14_Pt_Time|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"Pm_Poll"->(funx2->letCI.CPointerx3=x2inportmidi_stub_13_Pm_Pollx3)|Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)))),"Pm_WriteSysEx"->(funx4x6x7->letCI.CPointerx8=x7inletCI.CPointerx5=x4inportmidi_stub_12_Pm_WriteSysExx5x6x8)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Returns(CI.PrimitiveCI.Int)))),"Pm_Write"->(funx9x11x13->letCI.CPointerx12=x11inletCI.CPointerx10=x9inportmidi_stub_11_Pm_Writex10x12x13)|Function(CI.Pointer_,Function(CI.Pointer_,Function(CI.PrimitiveCI.Int32_t,Returns(CI.PrimitiveCI.Int)))),"Pm_Read"->(funx14x16x18->letCI.CPointerx17=x16inletCI.CPointerx15=x14inportmidi_stub_10_Pm_Readx15x17x18)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"Pm_Close"->(funx19->letCI.CPointerx20=x19inportmidi_stub_9_Pm_Closex20)|Function(CI.Pointer_,Returns(CI.PrimitiveCI.Int)),"Pm_Abort"->(funx21->letCI.CPointerx22=x21inportmidi_stub_8_Pm_Abortx22)|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"->(funx23x25x26x28x29x31x33->letCI.CPointerx32=x31inletCI.CPointerx30=x29inletCI.CPointerx27=x26inletCI.CPointerx24=x23inportmidi_stub_7_Pm_OpenOutputx24x25x27x28x30x32x33)|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"->(funx34x36x37x39x40x42->letCI.CPointerx43=x42inletCI.CPointerx41=x40inletCI.CPointerx38=x37inletCI.CPointerx35=x34inportmidi_stub_6_Pm_OpenInputx35x36x38x39x41x43)|Function(CI.PrimitiveCI.Int,Returns(CI.View{CI.ty=CI.Pointerx45;read=x46;_})),"Pm_GetErrorText"->(funx44->x46(CI.make_ptrx45(portmidi_stub_5_Pm_GetErrorTextx44)))|Function(CI.PrimitiveCI.Int,Returns(CI.Pointerx48)),"Pm_GetDeviceInfo"->(funx47->CI.make_ptrx48(portmidi_stub_4_Pm_GetDeviceInfox47))|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