File: 101_functorapp.sml

package info (click to toggle)
smlsharp 4.1.0-1.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 123,724 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 (37 lines) | stat: -rw-r--r-- 938 bytes parent folder | download | duplicates (3)
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
29
30
31
32
33
34
35
36
37
_interface "101_functorapp.smi"
structure S = F()

(*
2011-09-02 katsu

extern F.f is lacking.
This does not cause compile error, but may cause link or runtime error.

extern val F : unit(t7[]) -> {1: unit(t7[]) -> unit(t7[])}
val $T_a(2) : {1: unit(t7[]) -> unit(t7[])} =
    (EXVAR(F : unit(t7[]) -> {1: unit(t7[]) -> unit(t7[])})
     : unit(t7[]) -> {1: unit(t7[]) -> unit(t7[])})
      ()
val F.f(0) : unit(t7[]) -> unit(t7[]) =
    #1
      _indexof(1, {1: unit(t7[]) -> unit(t7[])})
      ($T_a(2) : {1: unit(t7[]) -> unit(t7[])} : {1: unit(t7[]) -> unit(t7[])})
    : unit(t7[]) -> unit(t7[])
(**** EXVAR(F.f) is unbound ****)
val F.f(1) : unit(t7[]) -> unit(t7[]) = EXVAR(F.f : unit(t7[]) -> unit(t7[]))
export val F.f(1) : unit(t7[]) -> unit(t7[])

*)

(*
2011-09-02 ohori

The generated code seems to be OK. The name evaluator produces
the sequnce:

1. extern var F
2. val T_a = F ()
3. val F.f = #1 T_a 
4. export val F.f

*)