Estou encontrando um problema ao usar lwt_ppx
e a let%lwt
sintaxe conforme descrito na seção do livro CS3110 sobre promessas ( https://cs3110.github.io/textbook/chapters/ds/promises.html ).
No trecho de código fornecido:
open Lwt_io
let p =
let%lwt s1 = read_line stdin in
let%lwt s2 = read_line stdin in
Lwt_io.printf "%s\n" (s1^s2)
let _ = Lwt_main.run p
Estou tentando compilar o código usando dune. Meu arquivo dune se parece com isso:
(executable
(name main)
(libraries lwt.unix lwt_ppx))
No entanto, quando executo o comando dune exec ./main.exe
, recebo a mensagem de erro "Extensão não interpretada 'lwt'".
Verifiquei que tenho o lwt_ppx
pacote instalado usando opam list
, e curiosamente, o código funciona conforme o esperado utop
quando executo:
#require "lwt_ppx";;
#require "lwt.unix";;
#use "main.ml";;
O que posso estar fazendo de errado com minha configuração de dunas? Qualquer ajuda seria muito apreciada.