Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | fun 'a f (x1: 'a, x2: 'a, aToString: 'a -> string): unit = |
2 | let | |
3 | datatype 'b t = T of 'a * 'b | |
4 | and u = U of int t | |
5 | val y1: int t = T (x1, 13) | |
6 | val _: u = U y1 | |
7 | val y2 = T (x2, "foo") | |
8 | fun 'b g (T (a, b), bToString: 'b -> string): unit = | |
9 | print (concat [aToString a, " ", bToString b, "\n"]) | |
10 | val _ = g (y1, Int.toString) | |
11 | val _ = g (y2, fn s => s) | |
12 | in | |
13 | () | |
14 | end | |
15 | ||
16 | val _ = f (true, false, Bool.toString) |