File: Test034.ML

package info (click to toggle)
polyml 5.7.1-5
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 40,616 kB
  • sloc: cpp: 44,142; ansic: 26,963; sh: 22,002; asm: 13,486; makefile: 602; exp: 525; python: 253; awk: 91
file content (21 lines) | stat: -rw-r--r-- 439 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
(* Frank Pfenning's example. This is almost certainly wrong but depends a bit
   on what structure sharing implies for the types. *)
  signature A =
   sig
     datatype t = C | D
     type s = t * t
   end;

   signature B =
   sig
     structure S : A
   end;

   functor F (structure S' : A
          structure T1 : B
        sharing T1.S = S'
          structure T2 : B
        sharing T1.S = S') =
   struct
     type r = int
   end;