File: constraint.sml

package info (click to toggle)
mlton 20100608-2
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 34,980 kB
  • ctags: 69,089
  • sloc: ansic: 18,421; lisp: 2,879; makefile: 1,570; sh: 1,325; pascal: 256; asm: 97
file content (16 lines) | stat: -rw-r--r-- 432 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
signature S = sig type ('a, 'b) t 
                  val A : 'a * int -> ('a, int) t
                  val pr : ('a -> string) -> ('b -> string) -> ('a, 'b) t -> string
              end

structure S = 
  struct
    datatype ('a, 'b) t = A of 'a * 'b
    fun pr pr_a pr_b (A(a,b)) = "A(" ^ pr_a a ^ "," ^ pr_b b ^ ")"
  end

structure S' = S : S

val s = S'.pr (fn s => s) (Int.toString) (S'.A("hello",5))

val _ = print (s ^ "\n")