File: distant_errors.ml

package info (click to toggle)
ocaml 5.3.0-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 43,124 kB
  • sloc: ml: 355,439; ansic: 51,636; sh: 25,098; asm: 5,413; makefile: 3,673; python: 919; javascript: 273; awk: 253; perl: 59; fortran: 21; cs: 9
file content (34 lines) | stat: -rw-r--r-- 708 bytes parent folder | download | duplicates (2)
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.
|}]