Build:
  1. 0
2026-06-16 18:49.06: New job: build learn-ocaml.0.15.0 (4953a3342629)
2026-06-16 18:49.06: Waiting for resource in pool day11-builds
2026-06-16 19:04.50: Got resource from pool day11-builds
2026-06-16 19:04.50: [profile full] build learn-ocaml.0.15.0
2026-06-16 19:04.50: build learn-ocaml.0.15.0 (4953a3342629)
=== DEPENDENCIES (101 transitive) ===
  angstrom.0.16.1                                    a6657eb64b3f
  asak.0.5                                           ab2bf3fd4209
  astring.0.8.5                                      91abdc7a53c3
  base.v0.14.4                                       fe70b190c04e
  base-bigarray.base                                 dfc2a7e726c3
  base-bytes.base                                    9e3796bcb03e
  base-threads.base                                  b7164ff76afe
  base-unix.base                                     839dc585f12d
  base64.3.5.2                                       b51cb6865d7d
  bigarray-compat.1.1.0                              cf082542a384
  bigstringaf.0.9.0                                  b1a3bf394793
  camlp-streams.5.0.1                                79e9567f76bd
  checkseum.0.5.3                                    a162b34bc4c7
  cmdliner.1.3.0                                     a308ed263822
  cohttp.4.0.0                                       13f255dd9300
  cohttp-lwt.4.0.0                                   a4f55d2c74ed
  cohttp-lwt-unix.4.0.0                              935658ec726e
  conduit.1.3.0                                      d3780039a534
  conduit-lwt.1.3.0                                  31cb2945c218
  conduit-lwt-unix.1.3.0                             ae5ba94e12b0
  conf-git.1.1                                       e1088d45da8b
  conf-libssl.4                                      cff50a027312
  conf-pkg-config.5                                  64c6b37d622b
  cppo.1.8.0                                         2f299f9291f9
  csexp.1.5.1                                        e4c3594fd1a2
  cstruct.5.2.0                                      300ec2fb66b2
  decompress.0.8.1                                   9438814608ba
  digestif.1.3.0                                     535f53188628
  dune.2.9.3                                         4ee209912894
  dune-configurator.2.9.3                            9787279a4d5c
  easy-format.1.3.3                                  4890d1d55c5d
  eqaf.0.10                                          a45fc61f1467
  ezjsonm.1.3.0                                      b6ce18314872
  fmt.0.11.0                                         e3dd390f1990
  fpath.0.7.3                                        174a092285f8
  gg.1.0.0                                           e1e32fcdc3e7
  hex.1.5.0                                          8c13f50224c3
  ipaddr.2.9.0                                       859df01b06d2
  js_of_ocaml.4.0.0                                  6476ec6ebbae
  js_of_ocaml-compiler.4.0.0                         a9c3414b6506
  js_of_ocaml-lwt.4.0.0                              1ca1ed2d78d0
  js_of_ocaml-ppx.4.0.0                              97ca3079e15e
  js_of_ocaml-toplevel.4.0.0                         983a01b5ef7b
  js_of_ocaml-tyxml.4.0.0                            e8161a74ae2e
  jsonm.1.0.2                                        860492790d92
  logs.0.7.0                                         bfde3b848d48
  lwt.5.9.1                                          9dfb9856c8b5
  lwt_react.1.2.0                                    a9e8cbdfe319
  lwt_ssl.1.1.3                                      dbfc7a2b642f
  magic-mime.1.3.1                                   1c177d5c2305
  markup.1.0.3                                       0e167d3a04ec
  markup-lwt.0.5.0                                   d4ec6c2e4704
  menhir.20260209                                    84cc1f884d2b
  menhirCST.20260209                                 1cca1ab53679
  menhirGLR.20260209                                 ba12adcb4da1
  menhirLib.20260209                                 6e9beb7bad69
  menhirSdk.20260209                                 5059305c1dc7
  num.1.6                                            6107ad20ded4
  ocaml.4.12.1                                       b220906b3826
  ocaml-base-compiler.4.12.1                         ce8680725b32
  ocaml-compiler-libs.v0.12.4                        31ca5fb84fbf
  ocaml-config.2                                     3a99bd9dbb34
  ocaml-migrate-parsetree.1.8.0                      09caba5a844a
  ocaml-syntax-shims.1.0.0                           a9bfb21293f3
  ocamlbuild.0.16.1                                  0aed2948eb5f
  ocamlfind.1.9.8                                    9ccba9f3d58c
  ocp-indent-nlfork.1.5.5                            f7b12859c21b
  ocp-ocamlres.0.4                                   e05ed57fbaa5
  ocplib-endian.1.2                                  4f8789280a4f
  ocplib-json-typed.0.7.1                            bbe1b7fe55f6
  ocplib-json-typed-browser.0.7.1                    01bfac024fa2
  odoc.2.1.1                                         fe070562fcfa
  odoc-parser.1.0.1                                  085202000252
  omd.1.3.1                                          20de3da803c5
  optint.0.3.0                                       38c54fcbe786
  parsexp.v0.14.2                                    a5a306cbf5c1
  pprint.20230830                                    44bb1b624af3
  ppx_cstruct.5.2.0                                  ce1b5f035ace
  ppx_derivers.1.2.1                                 e9fe30a66c54
  ppx_sexp_conv.v0.14.1                              0e7c5c733c95
  ppx_tools.6.6                                      a4117d9fec01
  ppx_tools_versioned.5.4.0                          46432a3f86d7
  ppxlib.0.15.0                                      ac62040a4c92
  re.1.12.0                                          f89d23c72e03
  react.1.2.2                                        deb5325fdde3
  reactiveData.0.3.0                                 769a9f2db4e5
  result.1.5                                         9c692c8474eb
  seq.base                                           464aa74108c5
  sexplib.v0.14.0                                    6cebd4f75b53
  sexplib0.v0.14.0                                   8002625abb72
  ssl.0.5.12                                         02c55630ca0d
  stdlib-shims.0.3.0                                 49562823b69b
  stringext.1.6.0                                    7382ec808b3b
  topkg.1.1.1                                        7b16f58d847f
  tyxml.4.6.0                                        1a002c0d1c23
  uchar.0.0.2                                        4db3d77eb50c
  uri.4.4.0                                          badf4703472c
  uri-sexp.4.4.0                                     e60ad7f48605
  uutf.1.0.4                                         4230a69410e2
  vg.0.9.4                                           53ce7c1ac234
  yojson.3.0.0                                       dd1bbf6badd8
=== STDOUT ===
Processing: [default: loading data]
[learn-ocaml.0.15.0: dl]
[learn-ocaml.0.15.0: extract]
-> retrieved learn-ocaml.0.15.0  (https://opam.ocaml.org/cache)
[learn-ocaml: make static]
+ /usr/bin/make "static" (CWD=/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0)
- make[1]: Entering directory '/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/static'
- make[2]: Entering directory '/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/static/icons'
- sed "s/#000000/#000/g" icon_cleanup_src.svg > icon_cleanup_black.svg
- sed "s/#000000/#000/g" icon_down_src.svg > icon_down_black.svg
- sed "s/#000000/#000/g" icon_download_src.svg > icon_download_black.svg
- sed "s/#000000/#000/g" icon_left_src.svg > icon_left_black.svg
- sed "s/#000000/#000/g" icon_list_src.svg > icon_list_black.svg
- sed "s/#000000/#000/g" icon_logout_src.svg > icon_logout_black.svg
- sed "s/#000000/#000/g" icon_menu_src.svg > icon_menu_black.svg
- sed "s/#000000/#000/g" icon_reload_src.svg > icon_reload_black.svg
- sed "s/#000000/#000/g" icon_right_src.svg > icon_right_black.svg
- sed "s/#000000/#000/g" icon_run_src.svg > icon_run_black.svg
- sed "s/#000000/#000/g" icon_save_src.svg > icon_save_black.svg
- sed "s/#000000/#000/g" icon_sync_src.svg > icon_sync_black.svg
- sed "s/#000000/#000/g" icon_token_src.svg > icon_token_black.svg
- sed "s/#000000/#000/g" icon_typecheck_src.svg > icon_typecheck_black.svg
- sed "s/#000000/#000/g" icon_up_src.svg > icon_up_black.svg
- sed "s/#000000/#000/g" icon_upload_src.svg > icon_upload_black.svg
- sed "s/#000000/#FFF/g" icon_cleanup_src.svg > icon_cleanup_white.svg
- sed "s/#000000/#FFF/g" icon_down_src.svg > icon_down_white.svg
- sed "s/#000000/#FFF/g" icon_download_src.svg > icon_download_white.svg
- sed "s/#000000/#FFF/g" icon_left_src.svg > icon_left_white.svg
- sed "s/#000000/#FFF/g" icon_list_src.svg > icon_list_white.svg
- sed "s/#000000/#FFF/g" icon_logout_src.svg > icon_logout_white.svg
- sed "s/#000000/#FFF/g" icon_menu_src.svg > icon_menu_white.svg
- sed "s/#000000/#FFF/g" icon_reload_src.svg > icon_reload_white.svg
- sed "s/#000000/#FFF/g" icon_right_src.svg > icon_right_white.svg
- sed "s/#000000/#FFF/g" icon_run_src.svg > icon_run_white.svg
- sed "s/#000000/#FFF/g" icon_save_src.svg > icon_save_white.svg
- sed "s/#000000/#FFF/g" icon_sync_src.svg > icon_sync_white.svg
- sed "s/#000000/#FFF/g" icon_token_src.svg > icon_token_white.svg
- sed "s/#000000/#FFF/g" icon_typecheck_src.svg > icon_typecheck_white.svg
- sed "s/#000000/#FFF/g" icon_up_src.svg > icon_up_white.svg
- sed "s/#000000/#FFF/g" icon_upload_src.svg > icon_upload_white.svg
- sed "s/#000000/#222/g" icon_cleanup_src.svg > icon_cleanup_dark.svg
- sed "s/#000000/#222/g" icon_down_src.svg > icon_down_dark.svg
- sed "s/#000000/#222/g" icon_download_src.svg > icon_download_dark.svg
- sed "s/#000000/#222/g" icon_left_src.svg > icon_left_dark.svg
- sed "s/#000000/#222/g" icon_list_src.svg > icon_list_dark.svg
- sed "s/#000000/#222/g" icon_logout_src.svg > icon_logout_dark.svg
- sed "s/#000000/#222/g" icon_menu_src.svg > icon_menu_dark.svg
- sed "s/#000000/#222/g" icon_reload_src.svg > icon_reload_dark.svg
- sed "s/#000000/#222/g" icon_right_src.svg > icon_right_dark.svg
- sed "s/#000000/#222/g" icon_run_src.svg > icon_run_dark.svg
- sed "s/#000000/#222/g" icon_save_src.svg > icon_save_dark.svg
- sed "s/#000000/#222/g" icon_sync_src.svg > icon_sync_dark.svg
- sed "s/#000000/#222/g" icon_token_src.svg > icon_token_dark.svg
- sed "s/#000000/#222/g" icon_typecheck_src.svg > icon_typecheck_dark.svg
- sed "s/#000000/#222/g" icon_up_src.svg > icon_up_dark.svg
- sed "s/#000000/#222/g" icon_upload_src.svg > icon_upload_dark.svg
- sed "s/#000000/#EEE/g" icon_cleanup_src.svg > icon_cleanup_light.svg
- sed "s/#000000/#EEE/g" icon_down_src.svg > icon_down_light.svg
- sed "s/#000000/#EEE/g" icon_download_src.svg > icon_download_light.svg
- sed "s/#000000/#EEE/g" icon_left_src.svg > icon_left_light.svg
- sed "s/#000000/#EEE/g" icon_list_src.svg > icon_list_light.svg
- sed "s/#000000/#EEE/g" icon_logout_src.svg > icon_logout_light.svg
- sed "s/#000000/#EEE/g" icon_menu_src.svg > icon_menu_light.svg
- sed "s/#000000/#EEE/g" icon_reload_src.svg > icon_reload_light.svg
- sed "s/#000000/#EEE/g" icon_right_src.svg > icon_right_light.svg
- sed "s/#000000/#EEE/g" icon_run_src.svg > icon_run_light.svg
- sed "s/#000000/#EEE/g" icon_save_src.svg > icon_save_light.svg
- sed "s/#000000/#EEE/g" icon_sync_src.svg > icon_sync_light.svg
- sed "s/#000000/#EEE/g" icon_token_src.svg > icon_token_light.svg
- sed "s/#000000/#EEE/g" icon_typecheck_src.svg > icon_typecheck_light.svg
- sed "s/#000000/#EEE/g" icon_up_src.svg > icon_up_light.svg
- sed "s/#000000/#EEE/g" icon_upload_src.svg > icon_upload_light.svg
- make[2]: Leaving directory '/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/static/icons'
- make[1]: Leaving directory '/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/static'
[learn-ocaml: dune build]
+ /home/opam/.opam/default/bin/dune "build" "-p" "learn-ocaml" "-j" "39" (CWD=/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0)
- linking_flags src/main/linking_main.sexp
- ;; linking_main.sexp
- ;; generated by ./linking_flags.sh
- ()
- linking_flags src/main/linking_server.sexp
- ;; linking_server.sexp
- ;; generated by ./linking_flags.sh
- ()
-       ocamlc src/ace-lib/.ace.objs/byte/ocaml_mode.{cmo,cmt}
- File "src/ace-lib/ocaml_mode.ml", line 154, characters 19-20:
- 154 |   | LINE_DIRECTIVE _ -> "meta"
-                          ^
- Warning 28 [wildcard-arg-to-constant-constr]: wildcard pattern given as argument to a constant constructor
-  js_of_ocaml src/app/learnocaml_exercise_main.bc.js
- warning: free variables in primitive code "define_ocaml_mode" (/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/_build/default/src/ace-lib/ace_bindings.js:19)
- vars: ace
-  js_of_ocaml src/app/learnocaml_index_main.bc.js
- warning: free variables in primitive code "define_ocaml_mode" (/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/_build/default/src/ace-lib/ace_bindings.js:19)
- vars: ace
-  js_of_ocaml src/app/learnocaml_student_view.bc.js
- warning: free variables in primitive code "define_ocaml_mode" (/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/_build/default/src/ace-lib/ace_bindings.js:19)
- vars: ace
-  js_of_ocaml src/app/learnocaml_partition_view.bc.js
- warning: free variables in primitive code "define_ocaml_mode" (/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/_build/default/src/ace-lib/ace_bindings.js:19)
- vars: ace
-  js_of_ocaml src/app/learnocaml_playground_main.bc.js
- warning: free variables in primitive code "define_ocaml_mode" (/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/_build/default/src/ace-lib/ace_bindings.js:19)
- vars: ace
-  js_of_ocaml src/app/learnocaml_description_main.bc.js
- warning: free variables in primitive code "define_ocaml_mode" (/home/opam/.opam/default/.opam-switch/build/learn-ocaml.0.15.0/_build/default/src/ace-lib/ace_bindings.js:19)
- vars: ace
-  js_of_ocaml src/toplevel/learnocaml_toplevel_worker_main.bc.js
- Warning: Program not linked with -g, original variable names and locations not available.
- There are some missing primitives
- Dummy implementations (raising 'Failure' exception) will be used if they are not available at runtime.
- You can prevent the generation of dummy implementations with the commandline option '--disable genprim'
- Missing primitives:
-   caml_unix_map_file_bytecode
-   unix_accept
-   unix_access
-   unix_alarm
-   unix_bind
-   unix_chdir
-   unix_chmod
-   unix_chown
-   unix_chroot
-   unix_clear_close_on_exec
-   unix_clear_nonblock
-   unix_close
-   unix_closedir
-   unix_connect
-   unix_dup
-   unix_dup2
-   unix_environment
-   unix_environment_unsafe
-   unix_error_message
-   unix_execv
-   unix_execve
-   unix_execvp
-   unix_execvpe
-   unix_exit
-   unix_fchmod
-   unix_fchown
-   unix_fork
-   unix_fstat
-   unix_fstat_64
-   unix_fsync
-   unix_ftruncate
-   unix_ftruncate_64
-   unix_getaddrinfo
-   unix_getcwd
-   unix_getegid
-   unix_geteuid
-   unix_getgid
-   unix_getgrgid
-   unix_getgrnam
-   unix_getgroups
-   unix_gethostbyaddr
-   unix_gethostbyname
-   unix_gethostname
-   unix_getitimer
-   unix_getlogin
-   unix_getnameinfo
-   unix_getpeername
-   unix_getpid
-   unix_getppid
-   unix_getprotobyname
-   unix_getprotobynumber
-   unix_getpwnam
-   unix_getservbyname
-   unix_getservbyport
-   unix_getsockname
-   unix_getsockopt
-   unix_inchannel_of_filedescr
-   unix_initgroups
-   unix_kill
-   unix_link
-   unix_listen
-   unix_lockf
-   unix_lseek
-   unix_lseek_64
-   unix_mkfifo
-   unix_nice
-   unix_open
-   unix_opendir
-   unix_outchannel_of_filedescr
-   unix_pipe
-   unix_putenv
-   unix_read
-   unix_readdir
-   unix_recv
-   unix_recvfrom
-   unix_rename
-   unix_rewinddir
-   unix_select
-   unix_send
-   unix_sendto
-   unix_set_close_on_exec
-   unix_set_nonblock
-   unix_setgid
-   unix_setgroups
-   unix_setitimer
-   unix_setsid
-   unix_setsockopt
-   unix_setuid
-   unix_shutdown
-   unix_sigpending
-   unix_sigprocmask
-   unix_sigsuspend
-   unix_single_write
-   unix_sleep
-   unix_socket
-   unix_socketpair
-   unix_spawn
-   unix_string_of_inet_addr
-   unix_tcdrain
-   unix_tcflow
-   unix_tcflush
-   unix_tcgetattr
-   unix_tcsendbreak
-   unix_tcsetattr
-   unix_times
-   unix_truncate
-   unix_truncate_64
-   unix_umask
-   unix_utimes
-   unix_wait
-   unix_waitpid
-   unix_write
-  js_of_ocaml src/grader/grader_jsoo_worker.bc.js
- Warning: Program not linked with -g, original variable names and locations not available.
- There are some missing primitives
- Dummy implementations (raising 'Failure' exception) will be used if they are not available at runtime.
- You can prevent the generation of dummy implementations with the commandline option '--disable genprim'
- Missing primitives:
-   caml_unix_map_file_bytecode
-   unix_accept
-   unix_access
-   unix_alarm
-   unix_bind
-   unix_chdir
-   unix_chmod
-   unix_chown
-   unix_chroot
-   unix_clear_close_on_exec
-   unix_clear_nonblock
-   unix_close
-   unix_closedir
-   unix_connect
-   unix_dup
-   unix_dup2
-   unix_environment
-   unix_environment_unsafe
-   unix_error_message
-   unix_execv
-   unix_execve
-   unix_execvp
-   unix_execvpe
-   unix_exit
-   unix_fchmod
-   unix_fchown
-   unix_fork
-   unix_fstat
-   unix_fstat_64
-   unix_fsync
-   unix_ftruncate
-   unix_ftruncate_64
-   unix_getaddrinfo
-   unix_getcwd
-   unix_getegid
-   unix_geteuid
-   unix_getgid
-   unix_getgrgid
-   unix_getgrnam
-   unix_getgroups
-   unix_gethostbyaddr
-   unix_gethostbyname
-   unix_gethostname
-   unix_getitimer
-   unix_getlogin
-   unix_getnameinfo
-   unix_getpeername
-   unix_getpid
-   unix_getppid
-   unix_getprotobyname
-   unix_getprotobynumber
-   unix_getpwnam
-   unix_getservbyname
-   unix_getservbyport
-   unix_getsockname
-   unix_getsockopt
-   unix_inchannel_of_filedescr
-   unix_initgroups
-   unix_kill
-   unix_link
-   unix_listen
-   unix_lockf
-   unix_lseek
-   unix_lseek_64
-   unix_mkfifo
-   unix_nice
-   unix_open
-   unix_opendir
-   unix_outchannel_of_filedescr
-   unix_pipe
-   unix_putenv
-   unix_read
-   unix_readdir
-   unix_recv
-   unix_recvfrom
-   unix_rename
-   unix_rewinddir
-   unix_select
-   unix_send
-   unix_sendto
-   unix_set_close_on_exec
-   unix_set_nonblock
-   unix_setgid
-   unix_setgroups
-   unix_setitimer
-   unix_setsid
-   unix_setsockopt
-   unix_setuid
-   unix_shutdown
-   unix_sigpending
-   unix_sigprocmask
-   unix_sigsuspend
-   unix_single_write
-   unix_sleep
-   unix_socket
-   unix_socketpair
-   unix_spawn
-   unix_string_of_inet_addr
-   unix_tcdrain
-   unix_tcflow
-   unix_tcflush
-   unix_tcgetattr
-   unix_tcsendbreak
-   unix_tcsetattr
-   unix_times
-   unix_truncate
-   unix_truncate_64
-   unix_umask
-   unix_utimes
-   unix_wait
-   unix_waitpid
-   unix_write
-       ocamlc src/utils/.learnocaml_partition_create.objs/byte/learnocaml_partition_create.{cmo,cmt} (exit 2)
- (cd _build/default && /home/opam/.opam/default/bin/ocamlc.opt -safe-string -w +a-4-42-44-45-48-3-58 -warn-error A-4-42-44-45-48 -bin-annot -I src/utils/.learnocaml_partition_create.objs/byte -I /home/opam/.opam/default/lib/angstrom -I /home/opam/.opam/default/lib/asak -I /home/opam/.opam/default/lib/astring -I /home/opam/.opam/default/lib/base/caml -I /home/opam/.opam/default/lib/base64 -I /home/opam/.opam/default/lib/bigarray-compat -I /home/opam/.opam/default/lib/bigstringaf -I /home/opam/.opam/default/lib/bytes -I /home/opam/.opam/default/lib/conduit -I /home/opam/.opam/default/lib/cstruct -I /home/opam/.opam/default/lib/digestif -I /home/opam/.opam/default/lib/digestif/ocaml -I /home/opam/.opam/default/lib/eqaf -I /home/opam/.opam/default/lib/ezjsonm -I /home/opam/.opam/default/lib/hex -I /home/opam/.opam/default/lib/ipaddr -I /home/opam/.opam/default/lib/jsonm -I /home/opam/.opam/default/lib/lwt -I /home/opam/.opam/default/lib/lwt/unix -I /home/opam/.opam/default/lib/ocaml/compiler-libs -I /home/opam/.opam/default/lib/ocaml/threads -I /home/opam/.opam/default/lib/ocplib-endian -I /home/opam/.opam/default/lib/ocplib-endian/bigstring -I /home/opam/.opam/default/lib/ocplib-json-typed -I /home/opam/.opam/default/lib/omd -I /home/opam/.opam/default/lib/parsexp -I /home/opam/.opam/default/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/default/lib/sexplib -I /home/opam/.opam/default/lib/sexplib0 -I /home/opam/.opam/default/lib/stringext -I /home/opam/.opam/default/lib/uri -I /home/opam/.opam/default/lib/uutf -I src/grader/.learnocaml_report.objs/byte -I src/repo/.learnocaml_repository.objs/byte -I src/state/.learnocaml_api.objs/byte -I src/state/.learnocaml_data.objs/byte -I src/state/.learnocaml_store.objs/byte -I src/toplevel/.learnocaml_toplevel_history.objs/byte -I src/utils/.learnocaml_xor.objs/byte -I src/utils/.lwt_utils.objs/byte -I src/utils/.ocplib_i18n.objs/byte -I src/utils/.sha.objs/byte -intf-suffix .ml -no-alias-deps -o src/utils/.learnocaml_partition_create.objs/byte/learnocaml_partition_create.cmo -c -impl src/utils/learnocaml_partition_create.ml)
- File "src/utils/learnocaml_partition_create.ml", line 105, characters 65-73:
- 105 |   let bad_type,partition_by_grade = asak_partition prof fun_name solution by_grade in
-                                                                        ^^^^^^^^
- Error: This expression has type string but an expression was expected of type
-          Types.type_expr
-     ocamlopt src/utils/.learnocaml_partition_create.objs/native/learnocaml_partition_create.{cmx,o} (exit 2)
- (cd _build/default && /home/opam/.opam/default/bin/ocamlopt.opt -safe-string -w +a-4-42-44-45-48-3-58 -warn-error A-4-42-44-45-48 -I src/utils/.learnocaml_partition_create.objs/byte -I src/utils/.learnocaml_partition_create.objs/native -I /home/opam/.opam/default/lib/angstrom -I /home/opam/.opam/default/lib/asak -I /home/opam/.opam/default/lib/astring -I /home/opam/.opam/default/lib/base/caml -I /home/opam/.opam/default/lib/base64 -I /home/opam/.opam/default/lib/bigarray-compat -I /home/opam/.opam/default/lib/bigstringaf -I /home/opam/.opam/default/lib/bytes -I /home/opam/.opam/default/lib/conduit -I /home/opam/.opam/default/lib/cstruct -I /home/opam/.opam/default/lib/digestif -I /home/opam/.opam/default/lib/digestif/ocaml -I /home/opam/.opam/default/lib/eqaf -I /home/opam/.opam/default/lib/ezjsonm -I /home/opam/.opam/default/lib/hex -I /home/opam/.opam/default/lib/ipaddr -I /home/opam/.opam/default/lib/jsonm -I /home/opam/.opam/default/lib/lwt -I /home/opam/.opam/default/lib/lwt/unix -I /home/opam/.opam/default/lib/ocaml/compiler-libs -I /home/opam/.opam/default/lib/ocaml/threads -I /home/opam/.opam/default/lib/ocplib-endian -I /home/opam/.opam/default/lib/ocplib-endian/bigstring -I /home/opam/.opam/default/lib/ocplib-json-typed -I /home/opam/.opam/default/lib/omd -I /home/opam/.opam/default/lib/parsexp -I /home/opam/.opam/default/lib/ppx_sexp_conv/runtime-lib -I /home/opam/.opam/default/lib/sexplib -I /home/opam/.opam/default/lib/sexplib0 -I /home/opam/.opam/default/lib/stringext -I /home/opam/.opam/default/lib/uri -I /home/opam/.opam/default/lib/uutf -I src/grader/.learnocaml_report.objs/byte -I src/grader/.learnocaml_report.objs/native -I src/repo/.learnocaml_repository.objs/byte -I src/repo/.learnocaml_repository.objs/native -I src/state/.learnocaml_api.objs/byte -I src/state/.learnocaml_api.objs/native -I src/state/.learnocaml_data.objs/byte -I src/state/.learnocaml_data.objs/native -I src/state/.learnocaml_store.objs/byte -I src/state/.learnocaml_store.objs/native -I src/toplevel/.learnocaml_toplevel_history.objs/byte -I src/toplevel/.learnocaml_toplevel_history.objs/native -I src/utils/.learnocaml_xor.objs/byte -I src/utils/.learnocaml_xor.objs/native -I src/utils/.lwt_utils.objs/byte -I src/utils/.lwt_utils.objs/native -I src/utils/.ocplib_i18n.objs/byte -I src/utils/.ocplib_i18n.objs/native -I src/utils/.sha.objs/byte -I src/utils/.sha.objs/native -intf-suffix .ml -no-alias-deps -o src/utils/.learnocaml_partition_create.objs/native/learnocaml_partition_create.cmx -c -impl src/utils/learnocaml_partition_create.ml)
- File "src/utils/learnocaml_partition_create.ml", line 105, characters 65-73:
- 105 |   let bad_type,partition_by_grade = asak_partition prof fun_name solution by_grade in
-                                                                        ^^^^^^^^
- Error: This expression has type string but an expression was expected of type
-          Types.type_expr
[ERROR] The compilation of learn-ocaml.0.15.0 failed at "dune build -p learn-ocaml -j 39".
build failed... 

=== STDERR ===

2026-06-16 19:06.46: FAILED: build learn-ocaml.0.15.0
2026-06-16 19:06.46: Job failed: build failed: learn-ocaml.0.15.0