File: distant_errors.ml

package info (click to toggle)
ocaml 5.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 44,372 kB
  • sloc: ml: 370,196; ansic: 52,820; sh: 27,396; asm: 5,462; makefile: 3,679; python: 974; awk: 278; javascript: 273; perl: 59; fortran: 21; cs: 9
file content (34 lines) | stat: -rw-r--r-- 708 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(* TEST
 expect;
*)

(** The aim of this file is to keep track of programs that are "far" from being well-typed *)


(** Arity mismatch between structure and signature *)

module M : sig
  type (_, _) t
  val f : (_, _) t -> unit
end = struct
  type _ t
  let f _ = ()
end

[%%expect{|
Lines 9-12, characters 6-3:
 9 | ......struct
10 |   type _ t
11 |   let f _ = ()
12 | end
Error: Signature mismatch:
       Modules do not match:
         sig type _ t val f : 'a -> unit end
       is not included in
         sig type (_, _) t val f : ('a, 'b) t -> unit end
       Type declarations do not match:
         type _ t
       is not included in
         type (_, _) t
       They have different arities.
|}]