File: 145_sharing.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 (34 lines) | stat: -rw-r--r-- 705 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
signature S =
sig
  datatype t = A | B of t
end
signature X =
sig
  structure S : S
  structure T : S
  sharing S = T
end

(*
2011-11-25 katsu

This causes an unexpected sigature mismatch error.

145_sharing.sml:9.3-9.15 Error:
  (name evaluation Sig-050) Signature mismatch in sharing type clause:T.t
*)


(*
2011-11-25 ohori

Fixed.

For sharing types, we need to check the consistency of datatype constructor.
This is something beyond the semantics defined in the Definition, since we
need to generate a structure instantce for functor.

To do this, type equality checking must be performed under the assumption that
all type ids specified in sharing types are equivalent. This mechanism is added.

*)