File: Test052.ML

package info (click to toggle)
polyml 5.6-8
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 31,892 kB
  • ctags: 34,453
  • sloc: cpp: 44,983; ansic: 24,520; asm: 14,850; sh: 11,730; makefile: 551; exp: 484; python: 253; awk: 91; sed: 9
file content (47 lines) | stat: -rw-r--r-- 708 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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(* This produced a signature match error in the structure declaration even
   though it had already matched in the functor result. *)


signature LONGID = sig type node type t val x: t end; 

functor Longid (): LONGID =
struct
    datatype node = T 

    type t = node list
    val x = nil
end;

signature AST_ATOMS =
   sig
      structure Longcon: LONGID

      structure Longvid:
         sig
            type t
            val longc: Longcon.t
         end
end
;

functor AstAtoms (): AST_ATOMS = 
struct

structure Longcon = Longid ()


structure Longvid =
   struct
      structure L = Longid ()

      open L
      val longc = Longcon.x

    end
end;


structure AstCore = AstAtoms () : AST_ATOMS;