I am using ocaml 4.08.1 and trying to use the new let bindings let*
and let+
along with ppx_jane
and core_kernel
. I have defined Result
monad as such
module Result = struct
include Result
let ( let+ ) = ( >>| )
let ( let* ) = ( >>= )
let ( and+ ) = Let_syntax.Let_syntax.both
end
My dune file
(library
(name test)
(flags
(:standard
(-open Core_kernel)
(-w -37)
(-w -32)))
(libraries core_kernel lwt lwt.unix core_kernel.binary_packing)
(preprocess
(pps ppx_jane)))
However, when I try to use let bindings like below I am getting a compilation error.
let open Result in
let* res = get_result () in
...
Error:
Raised at file "src/migrate_parsetree_408_407_migrate.ml", line 7, characters 2-49
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 57, characters 8-40
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 211, characters 9-29
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 57, characters 8-40
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 211, characters 9-29
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 57, characters 8-40
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 84, characters 10-30
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 57, characters 8-40
Called from file "src/migrate_parsetree_408_407_migrate.ml", line 253, characters 8-34
Called from file "list.ml", line 92, characters 20-23
Using without ppx_jane
seems to work. Is there a workaround to this? I am using the latest version of ppx_jane
- v0.12.0.