blob: c7d5c1eca85aa4e588231cb4caefd3bf2d36a43c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# type 'a t = T of 'a
type 'a s = S of 'a
type (_, _) eq = Refl : ('a, 'a) eq
# Characters 46-50:
let f : (int s, int t) eq -> unit = function Refl -> ();;
^^^^
Error: This pattern matches values of type (int s, int s) eq
but a pattern was expected which matches values of type
(int s, int t) eq
Type int s is not compatible with type int t
# module M :
functor (S : sig type 'a t = T of 'a type 'a s = T of 'a end) ->
sig val f : (a#0 S.s, a#0 S.t) eq -> unit end
#
|