ocaml/merlin

truncated error message with Emacs+Merlin on OCaml 5.04 and v5.7.1-504

Open

#2,080 建立於 2026年6月18日

在 GitHub 查看
 (7 留言) (0 反應) (1 負責人)OCaml (252 fork)github user discovery
good first issue

倉庫指標

Star
 (1,690 star)
PR 合併指標
 (PR 指標待抓取)

描述

Repro case:

module type A = sig type a end
module type B = sig type b end

module A : A = struct type a end
module B : B = struct type b end

module F (_ : A) (_ : B) = struct end

module Test = F(B)(A)

Merlin shows the following error message:

2. Modules do not match: A : sig type a = A.a end is not included in B

(The exact same thing is in the *Messages* and *merlin-errors* buffer.)

This is only the last line of the full error message shown by the compiler:

Error: This application of the functor F is ill-typed.
       These arguments:
         B A
       do not match these parameters:
         (Arg : A) (Arg : B) -> ...
       1. Modules do not match:
            B : sig type b = B.b end
          is not included in
            A
          The type a is required but not provided
          File "test.ml", line 1, characters 20-26: Expected declaration
       2. Modules do not match: A : sig type a = A.a end is not included in B

貢獻者指南