blob: ba700c22844b95cf8e1ae03b9b95e6dcc4801f51 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
signature S = sig
class c
val default : t :: Type -> c t -> t
val string_c : c string
val int_c : c int
end
structure M : S = struct
class c t = t
val default = fn t :: Type => fn v : c t => v
val int_c : c int = 0
val string_c : c string = "Hi"
end
val hi = M.default [string] _
val zero = M.default [int] _
|