123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147[@@@warning"-9-27"]includeCtypesletliftx=xopenCtypes_staticletrecfield:typeta.ttyp->string->atyp->(a,t)field=funsfnameftype->matchs,fnamewith|View{ty;_},_->let{ftype;foffset;fname}=fieldtyfnameftypein{ftype;foffset;fname}|_->failwith("Unexpected field "^fname)letrecseal:typea.atyp->unit=function|Struct{tag;spec=Complete_;_}->raise(ModifyingSealedTypetag)|Union{utag;uspec=Some_;_}->raise(ModifyingSealedTypeutag)|View{ty;_}->sealty|_->raise(Unsupported"Sealing a non-structured type")type'aconst='aletconstant(typet)name(t:ttyp):t=matcht,namewith|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_PP_ALL"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_PP_ROOT"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_PP_NONE"->0|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BT_BPH"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BT_BLB"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BT_BFS"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BT_DFS"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BR_PCH"->5|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BR_DTH"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BR_MFV"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BR_LFV"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BR_FFV"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_USE_NT"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_USE_AT"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_RT_FLIP"->51|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_RT_HAR"->34|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_RT_STD"->17|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_PT_PSE"->34|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_PT_STD"->17|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_DUAL"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_DUALP"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_PRIMAL"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MSG_DBG"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MSG_ALL"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MSG_ON"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MSG_ERR"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MSG_OFF"->0|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_UNBND"->6|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_OPT"->5|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_NOFEAS"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_INFEAS"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_FEAS"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_UNDEF"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ESTOP"->13|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EMIPGAP"->14|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EROOT"->12|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ENODFS"->11|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ENOPFS"->10|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ETMLIM"->9|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EITLIM"->8|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EOBJUL"->7|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EOBJLL"->6|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EFAIL"->5|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EBOUND"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ECOND"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ESING"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_EBADB"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_FX"->5|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_DB"->4|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_UP"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_LO"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_FR"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_BV"->3|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_IV"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_CV"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MAX"->2|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_MIN"->1|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_OFF"->0|Ctypes_static.PrimitiveCstubs_internals.Int,"GLP_ON"->1|_,s->failwith("unmatched constant: "^s)letenum(typea)name?typedef?unexpected(alist:(a*int64)list)=matchnamewith|s->failwith("unmatched enum: "^s)