Build:
  1. 0
2026-10-22 07:15.23: New job: build learn-ocaml.0.15.0 (669f39169ba5)
2026-10-22 07:15.23: Waiting for resource in pool day11-builds
2026-10-22 07:45.34: Got resource from pool day11-builds
2026-10-22 07:45.34: [profile full] build learn-ocaml.0.15.0
2026-10-22 07:45.35: build learn-ocaml.0.15.0 (669f39169ba5)
=== DEPENDENCIES (101 transitive) ===
  angstrom.0.16.1                                    5892731c08a7
  asak.0.5                                           c4b19e0afbd1
  astring.0.8.5                                      d4258e3d830f
  base.v0.14.4                                       533f35a652fa
  base-bigarray.base                                 af90e15e33c9
  base-bytes.base                                    66304045e019
  base-threads.base                                  ca51096a9c5b
  base-unix.base                                     88a83b7ed333
  base64.3.5.2                                       6022948dd395
  bigarray-compat.1.1.0                              e8fda55aeab4
  bigstringaf.0.9.0                                  d0be17a37fd7
  camlp-streams.5.0.1                                2a6c5438b1ae
  checkseum.0.5.4                                    4ac49cb3de64
  cmdliner.1.3.0                                     3d17eaf6fbe0
  cohttp.4.0.0                                       7b9645316d81
  cohttp-lwt.4.0.0                                   0c15183b757e
  cohttp-lwt-unix.4.0.0                              63736d2bca49
  conduit.1.3.0                                      46acc2d965d0
  conduit-lwt.1.3.0                                  a41ed84318c8
  conduit-lwt-unix.1.3.0                             095849f5e3e0
  conf-git.1.1                                       db6e2a186c34
  conf-libssl.4                                      9a6f007648db
  conf-pkg-config.5                                  26be2768a637
  cppo.1.8.0                                         4ac001c017f0
  csexp.1.5.1                                        ec080efbafc9
  cstruct.5.2.0                                      246f04e28026
  decompress.0.8.1                                   b12b9731e11b
  digestif.1.4.1                                     3ae64f1abd2c
  dune.2.9.3                                         171fce3f18de
  dune-configurator.2.9.3                            90335ace9367
  easy-format.1.3.3                                  e4a1cca4b650
  eqaf.0.10                                          0e7532fdba61
  ezjsonm.1.3.0                                      27e700cd2171
  fmt.0.11.0                                         ef471eef6961
  fpath.0.7.3                                        78baf58ebad2
  gg.1.0.0                                           702650e746df
  hex.1.5.0                                          c9252297b1d5
  ipaddr.2.9.0                                       19462f22fd55
  js_of_ocaml.4.0.0                                  f86417960b6a
  js_of_ocaml-compiler.4.0.0                         f23e6c72f0d2
  js_of_ocaml-lwt.4.0.0                              8db20c356452
  js_of_ocaml-ppx.4.0.0                              3528f8961d14
  js_of_ocaml-toplevel.4.0.0                         ef98e822a686
  js_of_ocaml-tyxml.4.0.0                            d345a8ff2461
  jsonm.1.0.2                                        a15496fb291d
  logs.0.7.0                                         c4b459d68ec0
  lwt.5.9.1                                          ec73917eeea0
  lwt_react.1.2.0                                    e88f79274d32
  lwt_ssl.1.1.3                                      400bb527bf8e
  magic-mime.1.3.1                                   d18b6f8fd13b
  markup.1.0.3                                       c32959887746
  markup-lwt.0.5.0                                   af332aa77e56
  menhir.20260209                                    f00cd5c07c02
  menhirCST.20260209                                 6a9dd332829b
  menhirGLR.20260209                                 e2109ff6071d
  menhirLib.20260209                                 600c460ce75f
  menhirSdk.20260209                                 f25ab8ef31c1
  num.1.6                                            f90365c3b97a
  ocaml.4.12.1                                       9f11d68ab027
  ocaml-base-compiler.4.12.1                         f3fe6b0ae528
  ocaml-compiler-libs.v0.12.4                        c5e69c2c6ad4
  ocaml-config.2                                     51cd011547ac
  ocaml-migrate-parsetree.1.8.0                      8bc68f24bd72
  ocaml-syntax-shims.1.0.0                           548f215d2293
  ocamlbuild.0.16.1                                  4ee5ccc4f975
  ocamlfind.1.9.8                                    ca20b5ce2716
  ocp-indent-nlfork.1.5.5                            a26325c1b159
  ocp-ocamlres.0.4                                   f0856a0bf8d5
  ocplib-endian.1.2                                  d6f61053d23b
  ocplib-json-typed.0.7.1                            9614e298ea2e
  ocplib-json-typed-browser.0.7.1                    8715ab659668
  odoc.2.1.1                                         93ec45371ef0
  odoc-parser.1.0.1                                  3fe0dc9e1911
  omd.1.3.1                                          a0456906ab8a
  optint.0.3.0                                       de01f0337e6a
  parsexp.v0.14.2                                    529632f321a1
  pprint.20230830                                    796b06c76d57
  ppx_cstruct.5.2.0                                  feda504d2d53
  ppx_derivers.1.2.1                                 e09561381c1d
  ppx_sexp_conv.v0.14.1                              ba9261c00f58
  ppx_tools.6.6                                      e6014a5fe820
  ppx_tools_versioned.5.4.0                          2abc10608d9d
  ppxlib.0.15.0                                      3b5f7fab55b2
  re.1.12.0                                          9c8c09a67c7b
  react.1.2.2                                        bf5903ced9be
  reactiveData.0.3.0                                 634ca05383ef
  result.1.5                                         212d104173bf
  seq.base                                           e8b5b2fbe7f9
  sexplib.v0.14.0                                    ab517d1451eb
  sexplib0.v0.14.0                                   49fe5882a346
  ssl.0.5.12                                         bf149456941e
  stdlib-shims.0.3.0                                 bdaade1601eb
  stringext.1.6.0                                    d5ab920d158e
  topkg.1.1.1                                        9d4e3bef4d69
  tyxml.4.6.0                                        c3adbfff8bcd
  uchar.0.0.2                                        1aa19f5b2aee
  uri.4.4.0                                          030229c273ef
  uri-sexp.4.4.0                                     e7a801415b94
  uutf.1.0.4                                         b2916c1d2f49
  vg.0.9.4                                           3f1d31bea553
  yojson.3.0.0                                       4045d645e2ff
=== 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_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/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_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_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_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/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-10-22 07:48.47: FAILED: build learn-ocaml.0.15.0
2026-10-22 07:48.47: Job failed: build failed: learn-ocaml.0.15.0