File: 038_functor2.sml

package info (click to toggle)
smlsharp 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 123,732 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (28 lines) | stat: -rw-r--r-- 700 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
val printf = _import "printf" : (string,...(int)) -> int
functor F(P:sig type foo val x : foo end) =
struct
  datatype bar = A of P.foo
  fun f (y:P.foo) = (y, P.x)
end;
structure AP = struct type foo = int val x = 1 end
structure A = F(AP);
val y = #1 (A.f(99));
val z = A.A 1;
val (A.A w) = z
val _ = printf ("%d\n", w)
(*
2011-08-21 ohori

Need to write a type cast for functor application in InferType.

[BUG] InferType: not yet 3
    raised at: ../typeinference2/main/InferTypes.sml:1737.15-1737.30
   handled at: ../typeinference2/main/InferTypes.sml:2973.28
		../toplevel2/main/Top.sml:762.65-762.68
		../toplevel2/main/Top.sml:864.37
		main/SimpleMain.sml:356.53

2011-08-22 ohori
Fixed.

*)