Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / fail / equality-types.sml
1 val _ = 1 = 2
2
3 val _ = 1.0 = 2.0 (* error *)
4
5 val f: ''a -> unit = fn _ => raise Fail "f"
6
7 val _ = f 1
8
9 val _ = f 1.0 (* error *)
10
11 datatype 'a t = T of 'a
12
13 val _ = T 1 = T 2
14
15 val _ = T 1.0 = T 2.0 (* 15 error *)
16
17 datatype 'a t = T
18
19 val _ = (T: int t) = T
20
21 val _ = (T: real t) = T (* 21 error *)
22
23 datatype t = T of u
24 withtype u = real
25
26 val _ = T 13.0 = T 14.0 (* 26 error *)
27
28 datatype t = T of u
29 and u = U of t
30
31 fun f (x: t) = x = x
32
33 datatype 'a t = T of 'a u
34 and 'a u = U of 'a
35
36 fun f (x: int t) = x = x
37
38 fun f (x: real t) = x = x (* 38 error *)
39
40 val f: 'a -> unit = fn x => (x = x; ()) (* 40 error *)