File: Test056.ML

package info (click to toggle)
polyml 5.7.1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 40,524 kB
  • sloc: cpp: 44,142; ansic: 26,963; sh: 22,002; asm: 13,486; makefile: 602; exp: 525; python: 253; awk: 91
file content (20 lines) | stat: -rw-r--r-- 335 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(* Checks on free type variables arising from expansive expressions. *)
functor F() =
struct
    fun f i = i
    fun z x = (f f) x
end;

structure Q = F();
Q.z 1;

(* This is acceptable because the signature coerces the
   type to a monotype. *)
structure S:
sig
    val z: int -> int
end =
struct
    fun f i = i
    val z = f f
end;