File: type_classMod2.ur

package info (click to toggle)
urweb 20170105%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 8,640 kB
  • ctags: 9,972
  • sloc: ansic: 6,402; lisp: 1,198; makefile: 173; sh: 44; sql: 1
file content (18 lines) | stat: -rw-r--r-- 377 bytes parent folder | download
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] _