Build:
  1. 0
2026-06-16 11:53.43: New job: build glpk.0.1.6 (d871c09ea880)
2026-06-16 11:53.43: Waiting for resource in pool day11-builds
2026-06-16 12:21.14: Got resource from pool day11-builds
2026-06-16 12:21.14: [profile full] build glpk.0.1.6
2026-06-16 12:21.14: build glpk.0.1.6 (d871c09ea880)
=== DEPENDENCIES (5 transitive) ===
  ocaml.5.4.1                                        708fed352b2a
  ocaml-base-compiler.5.4.1                          89b85703f841
  ocaml-compiler.5.4.1                               a719b8419b8e
  ocaml-config.3                                     aa27f63940d8
  ocamlfind.1.9.8                                    5cfa73ef65e7
=== STDOUT ===
Processing: [default: loading data]

The following system packages will first need to be installed:
    libglpk-dev

<><> Handling external dependencies <><><><><><><><><><><><><><><><><><><><><><>

+ /usr/bin/sudo "apt-get" "install" "-qq" "-yy" "libglpk-dev"
- debconf: delaying package configuration, since apt-utils is not installed
- Selecting previously unselected package libsuitesparseconfig5:amd64.
- (Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 18247 files and directories currently installed.)
- Preparing to unpack .../00-libsuitesparseconfig5_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libsuitesparseconfig5:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libamd2:amd64.
- Preparing to unpack .../01-libamd2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libamd2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libblas3:amd64.
- Preparing to unpack .../02-libblas3_3.11.0-2_amd64.deb ...
- Unpacking libblas3:amd64 (3.11.0-2) ...
- Selecting previously unselected package libblas-dev:amd64.
- Preparing to unpack .../03-libblas-dev_3.11.0-2_amd64.deb ...
- Unpacking libblas-dev:amd64 (3.11.0-2) ...
- Selecting previously unselected package libbtf1:amd64.
- Preparing to unpack .../04-libbtf1_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libbtf1:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libcamd2:amd64.
- Preparing to unpack .../05-libcamd2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libcamd2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libccolamd2:amd64.
- Preparing to unpack .../06-libccolamd2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libccolamd2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libcolamd2:amd64.
- Preparing to unpack .../07-libcolamd2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libcolamd2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libgfortran5:amd64.
- Preparing to unpack .../08-libgfortran5_12.2.0-14+deb12u1_amd64.deb ...
- Unpacking libgfortran5:amd64 (12.2.0-14+deb12u1) ...
- Selecting previously unselected package liblapack3:amd64.
- Preparing to unpack .../09-liblapack3_3.11.0-2_amd64.deb ...
- Unpacking liblapack3:amd64 (3.11.0-2) ...
- Selecting previously unselected package libmetis5:amd64.
- Preparing to unpack .../10-libmetis5_5.1.0.dfsg-7_amd64.deb ...
- Unpacking libmetis5:amd64 (5.1.0.dfsg-7) ...
- Selecting previously unselected package libcholmod3:amd64.
- Preparing to unpack .../11-libcholmod3_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libcholmod3:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libcxsparse3:amd64.
- Preparing to unpack .../12-libcxsparse3_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libcxsparse3:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libltdl7:amd64.
- Preparing to unpack .../13-libltdl7_2.4.7-7~deb12u1_amd64.deb ...
- Unpacking libltdl7:amd64 (2.4.7-7~deb12u1) ...
- Selecting previously unselected package libglpk40:amd64.
- Preparing to unpack .../14-libglpk40_5.0-1_amd64.deb ...
- Unpacking libglpk40:amd64 (5.0-1) ...
- Selecting previously unselected package libgmpxx4ldbl:amd64.
- Preparing to unpack .../15-libgmpxx4ldbl_2%3a6.2.1+dfsg1-1.1_amd64.deb ...
- Unpacking libgmpxx4ldbl:amd64 (2:6.2.1+dfsg1-1.1) ...
- Selecting previously unselected package libgmp-dev:amd64.
- Preparing to unpack .../16-libgmp-dev_2%3a6.2.1+dfsg1-1.1_amd64.deb ...
- Unpacking libgmp-dev:amd64 (2:6.2.1+dfsg1-1.1) ...
- Selecting previously unselected package zlib1g-dev:amd64.
- Preparing to unpack .../17-zlib1g-dev_1%3a1.2.13.dfsg-1_amd64.deb ...
- Unpacking zlib1g-dev:amd64 (1:1.2.13.dfsg-1) ...
- Selecting previously unselected package libklu1:amd64.
- Preparing to unpack .../18-libklu1_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libklu1:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libldl2:amd64.
- Preparing to unpack .../19-libldl2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libldl2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libmongoose2:amd64.
- Preparing to unpack .../20-libmongoose2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libmongoose2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libumfpack5:amd64.
- Preparing to unpack .../21-libumfpack5_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libumfpack5:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package librbio2:amd64.
- Preparing to unpack .../22-librbio2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking librbio2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libspqr2:amd64.
- Preparing to unpack .../23-libspqr2_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libspqr2:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libsliplu1:amd64.
- Preparing to unpack .../24-libsliplu1_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libsliplu1:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package liblapack-dev:amd64.
- Preparing to unpack .../25-liblapack-dev_3.11.0-2_amd64.deb ...
- Unpacking liblapack-dev:amd64 (3.11.0-2) ...
- Selecting previously unselected package libsuitesparse-dev:amd64.
- Preparing to unpack .../26-libsuitesparse-dev_1%3a5.12.0+dfsg-2_amd64.deb ...
- Unpacking libsuitesparse-dev:amd64 (1:5.12.0+dfsg-2) ...
- Selecting previously unselected package libglpk-dev:amd64.
- Preparing to unpack .../27-libglpk-dev_5.0-1_amd64.deb ...
- Unpacking libglpk-dev:amd64 (5.0-1) ...
- Selecting previously unselected package libgraphblas7:amd64.
- Preparing to unpack .../28-libgraphblas7_7.4.0+dfsg-1_amd64.deb ...
- Unpacking libgraphblas7:amd64 (7.4.0+dfsg-1) ...
- Selecting previously unselected package libgraphblas-dev:amd64.
- Preparing to unpack .../29-libgraphblas-dev_7.4.0+dfsg-1_amd64.deb ...
- Unpacking libgraphblas-dev:amd64 (7.4.0+dfsg-1) ...
- Setting up libldl2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libgraphblas7:amd64 (7.4.0+dfsg-1) ...
- Setting up libmetis5:amd64 (5.1.0.dfsg-7) ...
- Setting up libbtf1:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libgraphblas-dev:amd64 (7.4.0+dfsg-1) ...
- Setting up libblas3:amd64 (3.11.0-2) ...
- update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to provide /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in auto mode
- Setting up libgmpxx4ldbl:amd64 (2:6.2.1+dfsg1-1.1) ...
- Setting up libltdl7:amd64 (2.4.7-7~deb12u1) ...
- Setting up libgfortran5:amd64 (12.2.0-14+deb12u1) ...
- Setting up zlib1g-dev:amd64 (1:1.2.13.dfsg-1) ...
- Setting up libcxsparse3:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libsuitesparseconfig5:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libblas-dev:amd64 (3.11.0-2) ...
- update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so to provide /usr/lib/x86_64-linux-gnu/libblas.so (libblas.so-x86_64-linux-gnu) in auto mode
- Setting up librbio2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libamd2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up liblapack3:amd64 (3.11.0-2) ...
- update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu) in auto mode
- Setting up libgmp-dev:amd64 (2:6.2.1+dfsg1-1.1) ...
- Setting up libcolamd2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libsliplu1:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libcamd2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libmongoose2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libglpk40:amd64 (5.0-1) ...
- Setting up liblapack-dev:amd64 (3.11.0-2) ...
- update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so to provide /usr/lib/x86_64-linux-gnu/liblapack.so (liblapack.so-x86_64-linux-gnu) in auto mode
- Setting up libklu1:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libccolamd2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libcholmod3:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libspqr2:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libumfpack5:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libsuitesparse-dev:amd64 (1:5.12.0+dfsg-2) ...
- Setting up libglpk-dev:amd64 (5.0-1) ...
- Processing triggers for libc-bin (2.36-9+deb12u14) ...
[glpk.0.1.6: dl]
[glpk.0.1.6: extract]
-> retrieved glpk.0.1.6  (https://opam.ocaml.org/cache)
[glpk: make byte]
+ /usr/bin/make "byte" "opt" (CWD=/home/opam/.opam/default/.opam-switch/build/glpk.0.1.6)
- make -C src byte
- make[1]: Entering directory '/home/opam/.opam/default/.opam-switch/build/glpk.0.1.6/src'
- make[2]: Entering directory '/home/opam/.opam/default/.opam-switch/build/glpk.0.1.6/src'
- making ._bcdi/glpk.di from glpk.mli
- making ._d/glpk.d from glpk.ml
- ocamlc -c -cc "cc" -ccopt "-fPIC -Wall -ansi -DCAML_NAME_SPACE -g \
- 			-DPIC   \
- 			    -o glpk_stubs.o " glpk_stubs.c 
- In file included from /home/opam/.opam/default/lib/ocaml/caml/alloc.h:19,
-                  from glpk_stubs.c:23:
- /home/opam/.opam/default/lib/ocaml/caml/misc.h:371:25: error: expected ';' before 'void'
-   371 |   CAMLnoret Caml_inline void caml_abort(void) {
-       |                         ^~~~
- /home/opam/.opam/default/lib/ocaml/caml/misc.h:452:13: error: expected ';' before 'int'
-   452 | Caml_inline int caml_uadd_overflow(uintnat a, uintnat b, uintnat * res)
-       |             ^~~
- /home/opam/.opam/default/lib/ocaml/caml/misc.h:463:13: error: expected ';' before 'int'
-   463 | Caml_inline int caml_usub_overflow(uintnat a, uintnat b, uintnat * res)
-       |             ^~~
- /home/opam/.opam/default/lib/ocaml/caml/misc.h:475:13: error: expected ';' before 'int'
-   475 | Caml_inline int caml_umul_overflow(uintnat a, uintnat b, uintnat * res)
-       |             ^~~
- In file included from /home/opam/.opam/default/lib/ocaml/caml/alloc.h:20:
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:116:13: error: expected ';' before 'int'
-   116 | Caml_inline int caml_result_is_exception(struct caml_result_private result)
-       |             ^~~
- In file included from /home/opam/.opam/default/lib/ocaml/caml/misc.h:21:
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:188:22: note: in expansion of macro 'Caml_inline'
-   188 | CAMLno_tsan_for_perf Caml_inline header_t Hd_val(value val)
-       |                      ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:188:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Hd_val'
-   188 | CAMLno_tsan_for_perf Caml_inline header_t Hd_val(value val)
-       |                                           ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:300:1: note: in expansion of macro 'Caml_inline'
-   300 | Caml_inline value Val_ptr(void* p)
-       | ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:300:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Val_ptr'
-   300 | Caml_inline value Val_ptr(void* p)
-       |                   ^~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:305:13: error: expected ';' before 'void'
-   305 | Caml_inline void* Ptr_val(value val)
-       |             ^~~~
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:74:1: note: in expansion of macro 'Caml_inline'
-    74 | Caml_inline value caml_alloc_unboxed (value arg) { return arg; }
-       | ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:74:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'caml_alloc_unboxed'
-    74 | Caml_inline value caml_alloc_unboxed (value arg) { return arg; }
-       |                   ^~~~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:75:1: note: in expansion of macro 'Caml_inline'
-    75 | Caml_inline value caml_alloc_boxed (value arg) {
-       | ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:75:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'caml_alloc_boxed'
-    75 | Caml_inline value caml_alloc_boxed (value arg) {
-       |                   ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:80:1: note: in expansion of macro 'Caml_inline'
-    80 | Caml_inline value caml_field_unboxed (value arg) { return arg; }
-       | ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:80:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'caml_field_unboxed'
-    80 | Caml_inline value caml_field_unboxed (value arg) { return arg; }
-       |                   ^~~~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:81:1: note: in expansion of macro 'Caml_inline'
-    81 | Caml_inline value caml_field_boxed (value arg) { return Field (arg, 0); }
-       | ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:81:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'caml_field_boxed'
-    81 | Caml_inline value caml_field_boxed (value arg) { return Field (arg, 0); }
-       |                   ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/config.h:43:28: error: unknown type name 'inline'
-    43 | #define Caml_inline static inline
-       |                            ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/fail.h:137:1: note: in expansion of macro 'Caml_inline'
-   137 | Caml_inline value caml_get_value_or_raise (struct caml_result_private result)
-       | ^~~~~~~~~~~
- In file included from glpk_stubs.c:26:
- /home/opam/.opam/default/lib/ocaml/caml/fail.h:137:19: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'caml_get_value_or_raise'
-   137 | Caml_inline value caml_get_value_or_raise (struct caml_result_private result)
-       |                   ^~~~~~~~~~~~~~~~~~~~~~~
- glpk_stubs.c: In function 'raise_on_error':
- glpk_stubs.c:40:10: error: 'LPX_E_OK' undeclared (first use in this function)
-    40 |     case LPX_E_OK:
-       |          ^~~~~~~~
- glpk_stubs.c:40:10: note: each undeclared identifier is reported only once for each function it appears in
- glpk_stubs.c:43:10: error: 'LPX_E_FAULT' undeclared (first use in this function)
-    43 |     case LPX_E_FAULT:
-       |          ^~~~~~~~~~~
- glpk_stubs.c:46:10: error: 'LPX_E_OBJLL' undeclared (first use in this function); did you mean 'GLP_EOBJLL'?
-    46 |     case LPX_E_OBJLL:
-       |          ^~~~~~~~~~~
-       |          GLP_EOBJLL
- glpk_stubs.c:49:10: error: 'LPX_E_OBJUL' undeclared (first use in this function); did you mean 'GLP_EOBJUL'?
-    49 |     case LPX_E_OBJUL:
-       |          ^~~~~~~~~~~
-       |          GLP_EOBJUL
- glpk_stubs.c:52:10: error: 'LPX_E_NOPFS' undeclared (first use in this function); did you mean 'GLP_ENOPFS'?
-    52 |     case LPX_E_NOPFS:
-       |          ^~~~~~~~~~~
-       |          GLP_ENOPFS
- glpk_stubs.c:55:10: error: 'LPX_E_NODFS' undeclared (first use in this function); did you mean 'GLP_ENODFS'?
-    55 |     case LPX_E_NODFS:
-       |          ^~~~~~~~~~~
-       |          GLP_ENODFS
- glpk_stubs.c:58:10: error: 'LPX_E_ITLIM' undeclared (first use in this function); did you mean 'GLP_EITLIM'?
-    58 |     case LPX_E_ITLIM:
-       |          ^~~~~~~~~~~
-       |          GLP_EITLIM
- glpk_stubs.c:61:10: error: 'LPX_E_TMLIM' undeclared (first use in this function); did you mean 'GLP_ETMLIM'?
-    61 |     case LPX_E_TMLIM:
-       |          ^~~~~~~~~~~
-       |          GLP_ETMLIM
- glpk_stubs.c:64:10: error: 'LPX_E_SING' undeclared (first use in this function); did you mean 'GLP_ESING'?
-    64 |     case LPX_E_SING:
-       |          ^~~~~~~~~~
-       |          GLP_ESING
- glpk_stubs.c:67:10: error: 'LPX_E_EMPTY' undeclared (first use in this function)
-    67 |     case LPX_E_EMPTY:
-       |          ^~~~~~~~~~~
- glpk_stubs.c:70:10: error: 'LPX_E_BADB' undeclared (first use in this function); did you mean 'GLP_EBADB'?
-    70 |     case LPX_E_BADB:
-       |          ^~~~~~~~~~
-       |          GLP_EBADB
- glpk_stubs.c:73:10: error: 'LPX_E_NOCONV' undeclared (first use in this function)
-    73 |     case LPX_E_NOCONV:
-       |          ^~~~~~~~~~~~
- glpk_stubs.c: In function 'finalize_lpx':
- glpk_stubs.c:86:3: warning: implicit declaration of function 'lpx_delete_prob'; did you mean 'glp_delete_prob'? [-Wimplicit-function-declaration]
-    86 |   lpx_delete_prob(Lpx_val(block));
-       |   ^~~~~~~~~~~~~~~
-       |   glp_delete_prob
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:86:19: note: in expansion of macro 'Lpx_val'
-    86 |   lpx_delete_prob(Lpx_val(block));
-       |                   ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:86:19: note: in expansion of macro 'Lpx_val'
-    86 |   lpx_delete_prob(Lpx_val(block));
-       |                   ^~~~~~~
- glpk_stubs.c: At top level:
- glpk_stubs.c:99:22: error: unknown type name 'LPX'
-    99 | static value new_blp(LPX* lp)
-       |                      ^~~
- glpk_stubs.c: In function 'ocaml_glpk_new_prob':
- glpk_stubs.c:108:3: error: unknown type name 'LPX'
-   108 |   LPX *lp = lpx_create_prob();
-       |   ^~~
- glpk_stubs.c:108:13: warning: implicit declaration of function 'lpx_create_prob'; did you mean 'glp_create_prob'? [-Wimplicit-function-declaration]
-   108 |   LPX *lp = lpx_create_prob();
-       |             ^~~~~~~~~~~~~~~
-       |             glp_create_prob
- glpk_stubs.c:108:13: warning: initialization of 'int *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
- glpk_stubs.c:109:10: warning: implicit declaration of function 'new_blp' [-Wimplicit-function-declaration]
-   109 |   return new_blp(lp);
-       |          ^~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_prob_name':
- glpk_stubs.c:114:3: error: unknown type name 'LPX'
-   114 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:114:13: note: in expansion of macro 'Lpx_val'
-   114 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:114:13: note: in expansion of macro 'Lpx_val'
-   114 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:115:3: warning: implicit declaration of function 'lpx_set_prob_name'; did you mean 'glp_set_prob_name'? [-Wimplicit-function-declaration]
-   115 |   lpx_set_prob_name(lp, String_val(name));
-       |   ^~~~~~~~~~~~~~~~~
-       |   glp_set_prob_name
- glpk_stubs.c: In function 'ocaml_glpk_get_prob_name':
- glpk_stubs.c:122:3: error: unknown type name 'LPX'
-   122 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:122:13: note: in expansion of macro 'Lpx_val'
-   122 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:122:13: note: in expansion of macro 'Lpx_val'
-   122 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- In file included from /home/opam/.opam/default/lib/ocaml/caml/callback.h:22,
-                  from glpk_stubs.c:24:
- glpk_stubs.c:123:31: warning: implicit declaration of function 'lpx_get_prob_name'; did you mean 'glp_get_prob_name'? [-Wimplicit-function-declaration]
-   123 |   CAMLreturn(caml_copy_string(lpx_get_prob_name(lp)));
-       |                               ^~~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:123:3: note: in expansion of macro 'CAMLreturn'
-   123 |   CAMLreturn(caml_copy_string(lpx_get_prob_name(lp)));
-       |   ^~~~~~~~~~
- glpk_stubs.c:123:31: warning: passing argument 1 of 'caml_copy_string' makes pointer from integer without a cast [-Wint-conversion]
-   123 |   CAMLreturn(caml_copy_string(lpx_get_prob_name(lp)));
-       |                               ^~~~~~~~~~~~~~~~~~~~~
-       |                               |
-       |                               int
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:123:3: note: in expansion of macro 'CAMLreturn'
-   123 |   CAMLreturn(caml_copy_string(lpx_get_prob_name(lp)));
-       |   ^~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:50:36: note: expected 'const char *' but argument is of type 'int'
-    50 | CAMLextern value caml_copy_string (char const *);
-       |                                    ^~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_obj_name':
- glpk_stubs.c:128:3: error: unknown type name 'LPX'
-   128 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:128:13: note: in expansion of macro 'Lpx_val'
-   128 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:128:13: note: in expansion of macro 'Lpx_val'
-   128 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:129:3: warning: implicit declaration of function 'lpx_set_obj_name'; did you mean 'glp_set_obj_name'? [-Wimplicit-function-declaration]
-   129 |   lpx_set_obj_name(lp, String_val(name));
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_obj_name
- glpk_stubs.c: In function 'ocaml_glpk_get_obj_name':
- glpk_stubs.c:136:3: error: unknown type name 'LPX'
-   136 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:136:13: note: in expansion of macro 'Lpx_val'
-   136 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:136:13: note: in expansion of macro 'Lpx_val'
-   136 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:137:31: warning: implicit declaration of function 'lpx_get_obj_name'; did you mean 'glp_get_obj_name'? [-Wimplicit-function-declaration]
-   137 |   CAMLreturn(caml_copy_string(lpx_get_obj_name(lp)));
-       |                               ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:137:3: note: in expansion of macro 'CAMLreturn'
-   137 |   CAMLreturn(caml_copy_string(lpx_get_obj_name(lp)));
-       |   ^~~~~~~~~~
- glpk_stubs.c:137:31: warning: passing argument 1 of 'caml_copy_string' makes pointer from integer without a cast [-Wint-conversion]
-   137 |   CAMLreturn(caml_copy_string(lpx_get_obj_name(lp)));
-       |                               ^~~~~~~~~~~~~~~~~~~~
-       |                               |
-       |                               int
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:137:3: note: in expansion of macro 'CAMLreturn'
-   137 |   CAMLreturn(caml_copy_string(lpx_get_obj_name(lp)));
-       |   ^~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:50:36: note: expected 'const char *' but argument is of type 'int'
-    50 | CAMLextern value caml_copy_string (char const *);
-       |                                    ^~~~~~~~~~~~
- glpk_stubs.c: At top level:
- glpk_stubs.c:140:33: error: 'LPX_MIN' undeclared here (not in a function); did you mean 'GLP_MIN'?
-   140 | static int direction_table[] = {LPX_MIN, LPX_MAX};
-       |                                 ^~~~~~~
-       |                                 GLP_MIN
- glpk_stubs.c:140:42: error: 'LPX_MAX' undeclared here (not in a function); did you mean 'GLP_MAX'?
-   140 | static int direction_table[] = {LPX_MIN, LPX_MAX};
-       |                                          ^~~~~~~
-       |                                          GLP_MAX
- glpk_stubs.c: In function 'ocaml_glpk_set_direction':
- glpk_stubs.c:144:3: error: unknown type name 'LPX'
-   144 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:144:13: note: in expansion of macro 'Lpx_val'
-   144 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:144:13: note: in expansion of macro 'Lpx_val'
-   144 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:145:3: warning: implicit declaration of function 'lpx_set_obj_dir'; did you mean 'glp_set_obj_dir'? [-Wimplicit-function-declaration]
-   145 |   lpx_set_obj_dir(lp, direction_table[Int_val(direction)]);
-       |   ^~~~~~~~~~~~~~~
-       |   glp_set_obj_dir
- glpk_stubs.c: In function 'ocaml_glpk_get_direction':
- glpk_stubs.c:151:3: error: unknown type name 'LPX'
-   151 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:151:13: note: in expansion of macro 'Lpx_val'
-   151 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:151:13: note: in expansion of macro 'Lpx_val'
-   151 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:152:10: warning: implicit declaration of function 'lpx_get_obj_dir'; did you mean 'glp_get_obj_dir'? [-Wimplicit-function-declaration]
-   152 |   switch(lpx_get_obj_dir(lp))
-       |          ^~~~~~~~~~~~~~~
-       |          glp_get_obj_dir
- glpk_stubs.c: In function 'ocaml_glpk_add_rows':
- glpk_stubs.c:167:3: error: unknown type name 'LPX'
-   167 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:167:13: note: in expansion of macro 'Lpx_val'
-   167 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:167:13: note: in expansion of macro 'Lpx_val'
-   167 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:168:3: warning: implicit declaration of function 'lpx_add_rows'; did you mean 'glp_add_rows'? [-Wimplicit-function-declaration]
-   168 |   lpx_add_rows(lp, Int_val(n));
-       |   ^~~~~~~~~~~~
-       |   glp_add_rows
- glpk_stubs.c: In function 'ocaml_glpk_set_row_name':
- glpk_stubs.c:174:3: error: unknown type name 'LPX'
-   174 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:174:13: note: in expansion of macro 'Lpx_val'
-   174 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:174:13: note: in expansion of macro 'Lpx_val'
-   174 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:175:3: warning: implicit declaration of function 'lpx_set_row_name'; did you mean 'glp_set_row_name'? [-Wimplicit-function-declaration]
-   175 |   lpx_set_row_name(lp, Int_val(n) + 1, String_val(name));
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_row_name
- glpk_stubs.c: In function 'ocaml_glpk_get_row_name':
- glpk_stubs.c:182:3: error: unknown type name 'LPX'
-   182 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:182:13: note: in expansion of macro 'Lpx_val'
-   182 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:182:13: note: in expansion of macro 'Lpx_val'
-   182 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:183:31: warning: implicit declaration of function 'lpx_get_row_name'; did you mean 'glp_get_row_name'? [-Wimplicit-function-declaration]
-   183 |   CAMLreturn(caml_copy_string(lpx_get_row_name(lp, Int_val(n) + 1)));
-       |                               ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:183:3: note: in expansion of macro 'CAMLreturn'
-   183 |   CAMLreturn(caml_copy_string(lpx_get_row_name(lp, Int_val(n) + 1)));
-       |   ^~~~~~~~~~
- glpk_stubs.c:183:31: warning: passing argument 1 of 'caml_copy_string' makes pointer from integer without a cast [-Wint-conversion]
-   183 |   CAMLreturn(caml_copy_string(lpx_get_row_name(lp, Int_val(n) + 1)));
-       |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       |                               |
-       |                               int
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:183:3: note: in expansion of macro 'CAMLreturn'
-   183 |   CAMLreturn(caml_copy_string(lpx_get_row_name(lp, Int_val(n) + 1)));
-       |   ^~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:50:36: note: expected 'const char *' but argument is of type 'int'
-    50 | CAMLextern value caml_copy_string (char const *);
-       |                                    ^~~~~~~~~~~~
- glpk_stubs.c: At top level:
- glpk_stubs.c:186:34: error: 'LPX_FR' undeclared here (not in a function); did you mean 'GLP_FR'?
-   186 | static int auxvartype_table[] = {LPX_FR, LPX_LO, LPX_UP, LPX_DB, LPX_FX};
-       |                                  ^~~~~~
-       |                                  GLP_FR
- glpk_stubs.c:186:42: error: 'LPX_LO' undeclared here (not in a function); did you mean 'GLP_LO'?
-   186 | static int auxvartype_table[] = {LPX_FR, LPX_LO, LPX_UP, LPX_DB, LPX_FX};
-       |                                          ^~~~~~
-       |                                          GLP_LO
- glpk_stubs.c:186:50: error: 'LPX_UP' undeclared here (not in a function); did you mean 'GLP_UP'?
-   186 | static int auxvartype_table[] = {LPX_FR, LPX_LO, LPX_UP, LPX_DB, LPX_FX};
-       |                                                  ^~~~~~
-       |                                                  GLP_UP
- glpk_stubs.c:186:58: error: 'LPX_DB' undeclared here (not in a function); did you mean 'GLP_DB'?
-   186 | static int auxvartype_table[] = {LPX_FR, LPX_LO, LPX_UP, LPX_DB, LPX_FX};
-       |                                                          ^~~~~~
-       |                                                          GLP_DB
- glpk_stubs.c:186:66: error: 'LPX_FX' undeclared here (not in a function); did you mean 'GLP_FX'?
-   186 | static int auxvartype_table[] = {LPX_FR, LPX_LO, LPX_UP, LPX_DB, LPX_FX};
-       |                                                                  ^~~~~~
-       |                                                                  GLP_FX
- glpk_stubs.c: In function 'ocaml_glpk_set_row_bounds':
- glpk_stubs.c:190:3: error: unknown type name 'LPX'
-   190 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:190:13: note: in expansion of macro 'Lpx_val'
-   190 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:190:13: note: in expansion of macro 'Lpx_val'
-   190 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:191:3: warning: implicit declaration of function 'lpx_set_row_bnds'; did you mean 'glp_set_row_bnds'? [-Wimplicit-function-declaration]
-   191 |   lpx_set_row_bnds(lp, Int_val(n) + 1, auxvartype_table[Int_val(type)], Double_val(lb), Double_val(ub));
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_row_bnds
- glpk_stubs.c: In function 'ocaml_glpk_add_cols':
- glpk_stubs.c:197:3: error: unknown type name 'LPX'
-   197 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:197:13: note: in expansion of macro 'Lpx_val'
-   197 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:197:13: note: in expansion of macro 'Lpx_val'
-   197 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:198:3: warning: implicit declaration of function 'lpx_add_cols'; did you mean 'glp_add_cols'? [-Wimplicit-function-declaration]
-   198 |   lpx_add_cols(lp, Int_val(n));
-       |   ^~~~~~~~~~~~
-       |   glp_add_cols
- glpk_stubs.c: In function 'ocaml_glpk_set_col_name':
- glpk_stubs.c:204:3: error: unknown type name 'LPX'
-   204 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:204:13: note: in expansion of macro 'Lpx_val'
-   204 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:204:13: note: in expansion of macro 'Lpx_val'
-   204 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:205:3: warning: implicit declaration of function 'lpx_set_col_name'; did you mean 'glp_set_col_name'? [-Wimplicit-function-declaration]
-   205 |   lpx_set_col_name(lp, Int_val(n) + 1, String_val(name));
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_col_name
- glpk_stubs.c: In function 'ocaml_glpk_get_col_name':
- glpk_stubs.c:212:3: error: unknown type name 'LPX'
-   212 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:212:13: note: in expansion of macro 'Lpx_val'
-   212 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:212:13: note: in expansion of macro 'Lpx_val'
-   212 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:213:31: warning: implicit declaration of function 'lpx_get_col_name'; did you mean 'glp_get_col_name'? [-Wimplicit-function-declaration]
-   213 |   CAMLreturn(caml_copy_string(lpx_get_col_name(lp, Int_val(n) + 1)));
-       |                               ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:213:3: note: in expansion of macro 'CAMLreturn'
-   213 |   CAMLreturn(caml_copy_string(lpx_get_col_name(lp, Int_val(n) + 1)));
-       |   ^~~~~~~~~~
- glpk_stubs.c:213:31: warning: passing argument 1 of 'caml_copy_string' makes pointer from integer without a cast [-Wint-conversion]
-   213 |   CAMLreturn(caml_copy_string(lpx_get_col_name(lp, Int_val(n) + 1)));
-       |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-       |                               |
-       |                               int
- /home/opam/.opam/default/lib/ocaml/caml/memory.h:457:29: note: in definition of macro 'CAMLreturnT'
-   457 |   type caml__temp_result = (result); \
-       |                             ^~~~~~
- glpk_stubs.c:213:3: note: in expansion of macro 'CAMLreturn'
-   213 |   CAMLreturn(caml_copy_string(lpx_get_col_name(lp, Int_val(n) + 1)));
-       |   ^~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/alloc.h:50:36: note: expected 'const char *' but argument is of type 'int'
-    50 | CAMLextern value caml_copy_string (char const *);
-       |                                    ^~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_col_bounds':
- glpk_stubs.c:218:3: error: unknown type name 'LPX'
-   218 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:218:13: note: in expansion of macro 'Lpx_val'
-   218 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:218:13: note: in expansion of macro 'Lpx_val'
-   218 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:219:3: warning: implicit declaration of function 'lpx_set_col_bnds'; did you mean 'glp_set_col_bnds'? [-Wimplicit-function-declaration]
-   219 |   lpx_set_col_bnds(lp, Int_val(n) + 1, auxvartype_table[Int_val(type)], Double_val(lb), Double_val(ub));
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_col_bnds
- glpk_stubs.c: In function 'ocaml_glpk_set_obj_coef':
- glpk_stubs.c:225:3: error: unknown type name 'LPX'
-   225 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:225:13: note: in expansion of macro 'Lpx_val'
-   225 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:225:13: note: in expansion of macro 'Lpx_val'
-   225 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:226:3: warning: implicit declaration of function 'lpx_set_obj_coef'; did you mean 'glp_set_obj_coef'? [-Wimplicit-function-declaration]
-   226 |   lpx_set_obj_coef(lp, Int_val(n) + 1, Double_val(coef));
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_obj_coef
- glpk_stubs.c: In function 'ocaml_glpk_load_matrix':
- glpk_stubs.c:232:3: error: unknown type name 'LPX'
-   232 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:232:13: note: in expansion of macro 'Lpx_val'
-   232 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:232:13: note: in expansion of macro 'Lpx_val'
-   232 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:207:37: warning: implicit declaration of function 'Hd_val'; did you mean 'Hp_val'? [-Wimplicit-function-declaration]
-   207 | #define Wosize_val(val) (Wosize_hd (Hd_val (val)))
-       |                                     ^~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:162:38: note: in definition of macro 'Wosize_hd'
-   162 | #define Wosize_hd(hd) ((mlsize_t) (((hd) & HEADER_WOSIZE_MASK) \
-       |                                      ^~
- glpk_stubs.c:233:15: note: in expansion of macro 'Wosize_val'
-   233 |   int i_dim = Wosize_val(matrix), j_dim;
-       |               ^~~~~~~~~~
- glpk_stubs.c:265:3: warning: implicit declaration of function 'lpx_load_matrix'; did you mean 'glp_load_matrix'? [-Wimplicit-function-declaration]
-   265 |   lpx_load_matrix(lp, n - 1, ia, ja, ar);
-       |   ^~~~~~~~~~~~~~~
-       |   glp_load_matrix
- glpk_stubs.c: In function 'ocaml_glpk_load_sparse_matrix':
- glpk_stubs.c:276:3: error: unknown type name 'LPX'
-   276 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:276:13: note: in expansion of macro 'Lpx_val'
-   276 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:276:13: note: in expansion of macro 'Lpx_val'
-   276 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_simplex':
- glpk_stubs.c:306:3: error: unknown type name 'LPX'
-   306 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:306:13: note: in expansion of macro 'Lpx_val'
-   306 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:306:13: note: in expansion of macro 'Lpx_val'
-   306 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:310:9: warning: implicit declaration of function 'lpx_simplex'; did you mean 'glp_simplex'? [-Wimplicit-function-declaration]
-   310 |   ret = lpx_simplex(lp);
-       |         ^~~~~~~~~~~
-       |         glp_simplex
- glpk_stubs.c: In function 'ocaml_glpk_get_obj_val':
- glpk_stubs.c:319:3: error: unknown type name 'LPX'
-   319 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:319:13: note: in expansion of macro 'Lpx_val'
-   319 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:319:13: note: in expansion of macro 'Lpx_val'
-   319 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:321:7: warning: implicit declaration of function 'lpx_get_class' [-Wimplicit-function-declaration]
-   321 |   if (lpx_get_class(lp) == LPX_MIP)
-       |       ^~~~~~~~~~~~~
- glpk_stubs.c:321:28: error: 'LPX_MIP' undeclared (first use in this function); did you mean 'GLP_MIP'?
-   321 |   if (lpx_get_class(lp) == LPX_MIP)
-       |                            ^~~~~~~
-       |                            GLP_MIP
- glpk_stubs.c:322:11: warning: implicit declaration of function 'lpx_mip_obj_val'; did you mean 'glp_mip_obj_val'? [-Wimplicit-function-declaration]
-   322 |     ans = lpx_mip_obj_val(lp);
-       |           ^~~~~~~~~~~~~~~
-       |           glp_mip_obj_val
- glpk_stubs.c:324:11: warning: implicit declaration of function 'lpx_get_obj_val'; did you mean 'glp_get_obj_val'? [-Wimplicit-function-declaration]
-   324 |     ans = lpx_get_obj_val(lp);
-       |           ^~~~~~~~~~~~~~~
-       |           glp_get_obj_val
- glpk_stubs.c: In function 'ocaml_glpk_get_col_prim':
- glpk_stubs.c:330:3: error: unknown type name 'LPX'
-   330 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:330:13: note: in expansion of macro 'Lpx_val'
-   330 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:330:13: note: in expansion of macro 'Lpx_val'
-   330 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:333:28: error: 'LPX_MIP' undeclared (first use in this function); did you mean 'GLP_MIP'?
-   333 |   if (lpx_get_class(lp) == LPX_MIP)
-       |                            ^~~~~~~
-       |                            GLP_MIP
- glpk_stubs.c:334:11: warning: implicit declaration of function 'lpx_mip_col_val'; did you mean 'glp_mip_col_val'? [-Wimplicit-function-declaration]
-   334 |     ans = lpx_mip_col_val(lp, Int_val(n) + 1);
-       |           ^~~~~~~~~~~~~~~
-       |           glp_mip_col_val
- glpk_stubs.c:336:11: warning: implicit declaration of function 'lpx_get_col_prim'; did you mean 'glp_get_col_prim'? [-Wimplicit-function-declaration]
-   336 |     ans = lpx_get_col_prim(lp, Int_val(n) + 1);
-       |           ^~~~~~~~~~~~~~~~
-       |           glp_get_col_prim
- glpk_stubs.c: In function 'ocaml_glpk_get_row_prim':
- glpk_stubs.c:342:3: error: unknown type name 'LPX'
-   342 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:342:13: note: in expansion of macro 'Lpx_val'
-   342 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:342:13: note: in expansion of macro 'Lpx_val'
-   342 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:343:27: warning: implicit declaration of function 'lpx_get_row_prim'; did you mean 'glp_get_row_prim'? [-Wimplicit-function-declaration]
-   343 |   return caml_copy_double(lpx_get_row_prim(lp, Int_val(n) + 1));
-       |                           ^~~~~~~~~~~~~~~~
-       |                           glp_get_row_prim
- glpk_stubs.c: In function 'ocaml_glpk_get_row_dual':
- glpk_stubs.c:348:3: error: unknown type name 'LPX'
-   348 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:348:13: note: in expansion of macro 'Lpx_val'
-   348 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:348:13: note: in expansion of macro 'Lpx_val'
-   348 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:349:27: warning: implicit declaration of function 'lpx_get_row_dual'; did you mean 'glp_get_row_dual'? [-Wimplicit-function-declaration]
-   349 |   return caml_copy_double(lpx_get_row_dual(lp, Int_val(n) + 1));
-       |                           ^~~~~~~~~~~~~~~~
-       |                           glp_get_row_dual
- glpk_stubs.c: In function 'ocaml_glpk_get_num_rows':
- glpk_stubs.c:354:3: error: unknown type name 'LPX'
-   354 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:354:13: note: in expansion of macro 'Lpx_val'
-   354 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:354:13: note: in expansion of macro 'Lpx_val'
-   354 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:355:18: warning: implicit declaration of function 'lpx_get_num_rows'; did you mean 'glp_get_num_rows'? [-Wimplicit-function-declaration]
-   355 |   return Val_int(lpx_get_num_rows(lp));
-       |                  ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:355:10: note: in expansion of macro 'Val_int'
-   355 |   return Val_int(lpx_get_num_rows(lp));
-       |          ^~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_num_cols':
- glpk_stubs.c:360:3: error: unknown type name 'LPX'
-   360 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:360:13: note: in expansion of macro 'Lpx_val'
-   360 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:360:13: note: in expansion of macro 'Lpx_val'
-   360 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:361:18: warning: implicit declaration of function 'lpx_get_num_cols'; did you mean 'glp_get_num_cols'? [-Wimplicit-function-declaration]
-   361 |   return Val_int(lpx_get_num_cols(lp));
-       |                  ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:361:10: note: in expansion of macro 'Val_int'
-   361 |   return Val_int(lpx_get_num_cols(lp));
-       |          ^~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_scale_problem':
- glpk_stubs.c:366:3: error: unknown type name 'LPX'
-   366 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:366:13: note: in expansion of macro 'Lpx_val'
-   366 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:366:13: note: in expansion of macro 'Lpx_val'
-   366 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:367:3: warning: implicit declaration of function 'lpx_scale_prob'; did you mean 'glp_scale_prob'? [-Wimplicit-function-declaration]
-   367 |   lpx_scale_prob(lp);
-       |   ^~~~~~~~~~~~~~
-       |   glp_scale_prob
- glpk_stubs.c: In function 'ocaml_glpk_unscale_problem':
- glpk_stubs.c:373:3: error: unknown type name 'LPX'
-   373 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:373:13: note: in expansion of macro 'Lpx_val'
-   373 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:373:13: note: in expansion of macro 'Lpx_val'
-   373 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:374:3: warning: implicit declaration of function 'lpx_unscale_prob'; did you mean 'glp_unscale_prob'? [-Wimplicit-function-declaration]
-   374 |   lpx_unscale_prob(lp);
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_unscale_prob
- glpk_stubs.c: In function 'ocaml_glpk_interior':
- glpk_stubs.c:389:3: error: unknown type name 'LPX'
-   389 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:389:13: note: in expansion of macro 'Lpx_val'
-   389 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:389:13: note: in expansion of macro 'Lpx_val'
-   389 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:393:9: warning: implicit declaration of function 'lpx_interior'; did you mean 'glp_interior'? [-Wimplicit-function-declaration]
-   393 |   ret = lpx_interior(lp);
-       |         ^~~~~~~~~~~~
-       |         glp_interior
- glpk_stubs.c: At top level:
- glpk_stubs.c:400:29: error: 'LPX_LP' undeclared here (not in a function)
-   400 | static int class_table[] = {LPX_LP, LPX_MIP};
-       |                             ^~~~~~
- glpk_stubs.c:400:37: error: 'LPX_MIP' undeclared here (not in a function); did you mean 'GLP_MIP'?
-   400 | static int class_table[] = {LPX_LP, LPX_MIP};
-       |                                     ^~~~~~~
-       |                                     GLP_MIP
- glpk_stubs.c: In function 'ocaml_glpk_set_class':
- glpk_stubs.c:404:3: error: unknown type name 'LPX'
-   404 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:404:13: note: in expansion of macro 'Lpx_val'
-   404 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:404:13: note: in expansion of macro 'Lpx_val'
-   404 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:405:3: warning: implicit declaration of function 'lpx_set_class' [-Wimplicit-function-declaration]
-   405 |   lpx_set_class(lp, class_table[Int_val(class)]);
-       |   ^~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_class':
- glpk_stubs.c:411:3: error: unknown type name 'LPX'
-   411 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:411:13: note: in expansion of macro 'Lpx_val'
-   411 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:411:13: note: in expansion of macro 'Lpx_val'
-   411 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c: At top level:
- glpk_stubs.c:425:28: error: 'LPX_CV' undeclared here (not in a function); did you mean 'GLP_CV'?
-   425 | static int kind_table[] = {LPX_CV, LPX_IV};
-       |                            ^~~~~~
-       |                            GLP_CV
- glpk_stubs.c:425:36: error: 'LPX_IV' undeclared here (not in a function); did you mean 'GLP_IV'?
-   425 | static int kind_table[] = {LPX_CV, LPX_IV};
-       |                                    ^~~~~~
-       |                                    GLP_IV
- glpk_stubs.c: In function 'ocaml_glpk_set_col_kind':
- glpk_stubs.c:429:3: error: unknown type name 'LPX'
-   429 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:429:13: note: in expansion of macro 'Lpx_val'
-   429 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:429:13: note: in expansion of macro 'Lpx_val'
-   429 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:430:3: warning: implicit declaration of function 'lpx_set_col_kind'; did you mean 'glp_set_col_kind'? [-Wimplicit-function-declaration]
-   430 |   lpx_set_col_kind(lp, Int_val(n) + 1, kind_table[Int_val(kind)]);
-       |   ^~~~~~~~~~~~~~~~
-       |   glp_set_col_kind
- glpk_stubs.c: In function 'ocaml_glpk_integer':
- glpk_stubs.c:437:3: error: unknown type name 'LPX'
-   437 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:437:13: note: in expansion of macro 'Lpx_val'
-   437 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:437:13: note: in expansion of macro 'Lpx_val'
-   437 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:441:9: warning: implicit declaration of function 'lpx_integer' [-Wimplicit-function-declaration]
-   441 |   ret = lpx_integer(lp);
-       |         ^~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_intopt':
- glpk_stubs.c:451:3: error: unknown type name 'LPX'
-   451 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:451:13: note: in expansion of macro 'Lpx_val'
-   451 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:451:13: note: in expansion of macro 'Lpx_val'
-   451 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:455:9: warning: implicit declaration of function 'lpx_intopt'; did you mean 'glp_intopt'? [-Wimplicit-function-declaration]
-   455 |   ret = lpx_intopt(lp);
-       |         ^~~~~~~~~~
-       |         glp_intopt
- glpk_stubs.c: In function 'ocaml_glpk_warm_up':
- glpk_stubs.c:464:3: error: unknown type name 'LPX'
-   464 |   LPX *lp = Lpx_val(blp);
-       |   ^~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:464:13: note: in expansion of macro 'Lpx_val'
-   464 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:464:13: note: in expansion of macro 'Lpx_val'
-   464 |   LPX *lp = Lpx_val(blp);
-       |             ^~~~~~~
- glpk_stubs.c:465:18: warning: implicit declaration of function 'lpx_warm_up'; did you mean 'glp_warm_up'? [-Wimplicit-function-declaration]
-   465 |   raise_on_error(lpx_warm_up(lp));
-       |                  ^~~~~~~~~~~
-       |                  glp_warm_up
- glpk_stubs.c: In function 'ocaml_glpk_get_message_level':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:473:18: warning: implicit declaration of function 'lpx_get_int_parm' [-Wimplicit-function-declaration]
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |                  ^~~~~~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:496:31: error: 'LPX_K_MSGLEV' undeclared (first use in this function)
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       |                               ^~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_message_level':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:478:3: warning: implicit declaration of function 'lpx_set_int_parm' [-Wimplicit-function-declaration]
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |   ^~~~~~~~~~~~~~~~
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:496:31: error: 'LPX_K_MSGLEV' undeclared (first use in this function)
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       |                               ^~~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_scaling':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:497:25: error: 'LPX_K_SCALE' undeclared (first use in this function)
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       |                         ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_scaling':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:497:25: error: 'LPX_K_SCALE' undeclared (first use in this function)
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       |                         ^~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_use_dual_simplex':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:498:34: error: 'LPX_K_DUAL' undeclared (first use in this function); did you mean 'GLP_DUAL'?
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       |                                  ^~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_use_dual_simplex':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:498:34: error: 'LPX_K_DUAL' undeclared (first use in this function); did you mean 'GLP_DUAL'?
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       |                                  ^~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_pricing':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:499:25: error: 'LPX_K_PRICE' undeclared (first use in this function)
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       |                         ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_pricing':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:499:25: error: 'LPX_K_PRICE' undeclared (first use in this function)
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       |                         ^~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_relaxation':
- glpk_stubs.c:485:3: error: unknown type name 'LPX'
-   485 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:485:13: note: in expansion of macro 'Lpx_val'
-   485 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:485:13: note: in expansion of macro 'Lpx_val'
-   485 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:486:16: warning: implicit declaration of function 'lpx_get_real_parm' [-Wimplicit-function-declaration]
-   486 |   double ans = lpx_get_real_parm(lp, param); \
-       |                ^~~~~~~~~~~~~~~~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:500:29: error: 'LPX_K_RELAX' undeclared (first use in this function)
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       |                             ^~~~~~~~~~~
- glpk_stubs.c:486:38: note: in definition of macro 'BIND_REAL_PARAM'
-   486 |   double ans = lpx_get_real_parm(lp, param); \
-       |                                      ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_relaxation':
- glpk_stubs.c:491:3: error: unknown type name 'LPX'
-   491 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:491:13: note: in expansion of macro 'Lpx_val'
-   491 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:491:13: note: in expansion of macro 'Lpx_val'
-   491 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:492:3: warning: implicit declaration of function 'lpx_set_real_parm' [-Wimplicit-function-declaration]
-   492 |   lpx_set_real_parm(lp, param, Double_val(n)); \
-       |   ^~~~~~~~~~~~~~~~~
- glpk_stubs.c:500:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:500:29: error: 'LPX_K_RELAX' undeclared (first use in this function)
-   500 | BIND_REAL_PARAM(relaxation, LPX_K_RELAX);
-       |                             ^~~~~~~~~~~
- glpk_stubs.c:492:25: note: in definition of macro 'BIND_REAL_PARAM'
-   492 |   lpx_set_real_parm(lp, param, Double_val(n)); \
-       |                         ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_solution_rounding':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:505:35: error: 'LPX_K_ROUND' undeclared (first use in this function)
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       |                                   ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_solution_rounding':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:505:35: error: 'LPX_K_ROUND' undeclared (first use in this function)
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       |                                   ^~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_iteration_limit':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:506:33: error: 'LPX_K_ITLIM' undeclared (first use in this function)
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       |                                 ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_iteration_limit':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:506:33: error: 'LPX_K_ITLIM' undeclared (first use in this function)
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       |                                 ^~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_iteration_count':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:507:33: error: 'LPX_K_ITCNT' undeclared (first use in this function)
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       |                                 ^~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_iteration_count':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:507:33: error: 'LPX_K_ITCNT' undeclared (first use in this function)
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       |                                 ^~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_time_limit':
- glpk_stubs.c:485:3: error: unknown type name 'LPX'
-   485 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:508:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:485:13: note: in expansion of macro 'Lpx_val'
-   485 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:508:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:485:13: note: in expansion of macro 'Lpx_val'
-   485 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:508:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:508:29: error: 'LPX_K_TMLIM' undeclared (first use in this function)
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       |                             ^~~~~~~~~~~
- glpk_stubs.c:486:38: note: in definition of macro 'BIND_REAL_PARAM'
-   486 |   double ans = lpx_get_real_parm(lp, param); \
-       |                                      ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_time_limit':
- glpk_stubs.c:491:3: error: unknown type name 'LPX'
-   491 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:508:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:491:13: note: in expansion of macro 'Lpx_val'
-   491 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:508:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:491:13: note: in expansion of macro 'Lpx_val'
-   491 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:508:1: note: in expansion of macro 'BIND_REAL_PARAM'
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       | ^~~~~~~~~~~~~~~
- glpk_stubs.c:508:29: error: 'LPX_K_TMLIM' undeclared (first use in this function)
-   508 | BIND_REAL_PARAM(time_limit, LPX_K_TMLIM);
-       |                             ^~~~~~~~~~~
- glpk_stubs.c:492:25: note: in definition of macro 'BIND_REAL_PARAM'
-   492 |   lpx_set_real_parm(lp, param, Double_val(n)); \
-       |                         ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_branching_heuristic':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:509:37: error: 'LPX_K_BRANCH' undeclared (first use in this function); did you mean 'GLP_IBRANCH'?
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       |                                     ^~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_branching_heuristic':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:509:37: error: 'LPX_K_BRANCH' undeclared (first use in this function); did you mean 'GLP_IBRANCH'?
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       |                                     ^~~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_backtracking_heuristic':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:510:40: error: 'LPX_K_BTRACK' undeclared (first use in this function)
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       |                                        ^~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_backtracking_heuristic':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:510:40: error: 'LPX_K_BTRACK' undeclared (first use in this function)
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       |                                        ^~~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_use_presolver':
- glpk_stubs.c:472:3: error: unknown type name 'LPX'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:472:13: note: in expansion of macro 'Lpx_val'
-   472 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:511:31: error: 'LPX_K_PRESOL' undeclared (first use in this function)
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       |                               ^~~~~~~~~~~~
- /home/opam/.opam/default/lib/ocaml/caml/mlvalues.h:79:47: note: in definition of macro 'Val_long'
-    79 | #define Val_long(x)     ((intnat) (((uintnat)(x) << 1)) + 1)
-       |                                               ^
- glpk_stubs.c:473:10: note: in expansion of macro 'Val_int'
-   473 |   return Val_int(lpx_get_int_parm(lp, param)); \
-       |          ^~~~~~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_set_use_presolver':
- glpk_stubs.c:477:3: error: unknown type name 'LPX'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |   ^~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:477:13: note: in expansion of macro 'Lpx_val'
-   477 |   LPX *lp = Lpx_val(blp); \
-       |             ^~~~~~~
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c:511:31: error: 'LPX_K_PRESOL' undeclared (first use in this function)
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       |                               ^~~~~~~~~~~~
- glpk_stubs.c:478:24: note: in definition of macro 'BIND_INT_PARAM'
-   478 |   lpx_set_int_parm(lp, param, Int_val(n)); \
-       |                        ^~~~~
- glpk_stubs.c: In function 'ocaml_glpk_read_cplex':
- glpk_stubs.c:515:3: error: unknown type name 'LPX'
-   515 |   LPX *lp = lpx_read_cpxlp(String_val(fname));
-       |   ^~~
- glpk_stubs.c:515:13: warning: implicit declaration of function 'lpx_read_cpxlp'; did you mean 'glp_read_lp'? [-Wimplicit-function-declaration]
-   515 |   LPX *lp = lpx_read_cpxlp(String_val(fname));
-       |             ^~~~~~~~~~~~~~
-       |             glp_read_lp
- glpk_stubs.c:515:13: warning: initialization of 'int *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
- glpk_stubs.c: In function 'ocaml_glpk_write_cplex':
- glpk_stubs.c:523:7: warning: implicit declaration of function 'lpx_write_cpxlp'; did you mean 'glp_write_lp'? [-Wimplicit-function-declaration]
-   523 |   if (lpx_write_cpxlp(Lpx_val(blp), String_val(fname)))
-       |       ^~~~~~~~~~~~~~~
-       |       glp_write_lp
- glpk_stubs.c:82:24: error: 'LPX' undeclared (first use in this function)
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                        ^~~
- glpk_stubs.c:523:23: note: in expansion of macro 'Lpx_val'
-   523 |   if (lpx_write_cpxlp(Lpx_val(blp), String_val(fname)))
-       |                       ^~~~~~~
- glpk_stubs.c:82:29: error: expected expression before ')' token
-    82 | #define Lpx_val(v) (*((LPX**)Data_custom_val(v)))
-       |                             ^
- glpk_stubs.c:523:23: note: in expansion of macro 'Lpx_val'
-   523 |   if (lpx_write_cpxlp(Lpx_val(blp), String_val(fname)))
-       |                       ^~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_message_level':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:496:1: note: in expansion of macro 'BIND_INT_PARAM'
-   496 | BIND_INT_PARAM(message_level, LPX_K_MSGLEV);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_scaling':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:497:1: note: in expansion of macro 'BIND_INT_PARAM'
-   497 | BIND_INT_PARAM(scaling, LPX_K_SCALE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_use_dual_simplex':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:498:1: note: in expansion of macro 'BIND_INT_PARAM'
-   498 | BIND_INT_PARAM(use_dual_simplex, LPX_K_DUAL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_pricing':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:499:1: note: in expansion of macro 'BIND_INT_PARAM'
-   499 | BIND_INT_PARAM(pricing, LPX_K_PRICE);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_solution_rounding':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:505:1: note: in expansion of macro 'BIND_INT_PARAM'
-   505 | BIND_INT_PARAM(solution_rounding, LPX_K_ROUND);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_iteration_limit':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:506:1: note: in expansion of macro 'BIND_INT_PARAM'
-   506 | BIND_INT_PARAM(iteration_limit, LPX_K_ITLIM);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_iteration_count':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:507:1: note: in expansion of macro 'BIND_INT_PARAM'
-   507 | BIND_INT_PARAM(iteration_count, LPX_K_ITCNT);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_branching_heuristic':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:509:1: note: in expansion of macro 'BIND_INT_PARAM'
-   509 | BIND_INT_PARAM(branching_heuristic, LPX_K_BRANCH);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_backtracking_heuristic':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:510:1: note: in expansion of macro 'BIND_INT_PARAM'
-   510 | BIND_INT_PARAM(backtracking_heuristic, LPX_K_BTRACK);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: In function 'ocaml_glpk_get_use_presolver':
- glpk_stubs.c:474:1: warning: control reaches end of non-void function [-Wreturn-type]
-   474 | } \
-       | ^
- glpk_stubs.c:511:1: note: in expansion of macro 'BIND_INT_PARAM'
-   511 | BIND_INT_PARAM(use_presolver, LPX_K_PRESOL);
-       | ^~~~~~~~~~~~~~
- glpk_stubs.c: At top level:
- glpk_stubs.c:89:33: warning: 'lpx_ops' defined but not used [-Wunused-variable]
-    89 | static struct custom_operations lpx_ops =
-       |                                 ^~~~~~~
- make[2]: *** [OCamlMakefile:1013: glpk_stubs.o] Error 2
- make[2]: Leaving directory '/home/opam/.opam/default/.opam-switch/build/glpk.0.1.6/src'
- make[1]: *** [OCamlMakefile:716: byte-code-library] Error 2
- make[1]: Leaving directory '/home/opam/.opam/default/.opam-switch/build/glpk.0.1.6/src'
- make: *** [Makefile:13: byte] Error 2
[ERROR] The compilation of glpk.0.1.6 failed at "make byte opt".
build failed... 

=== STDERR ===

2026-06-16 12:21.30: FAILED: build glpk.0.1.6
2026-06-16 12:21.30: Job failed: build failed: glpk.0.1.6