File: 084_provide.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 (66 lines) | stat: -rw-r--r-- 962 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
_interface "084_provide.smi"
structure S0
 :>
  sig
    eqtype t
  end
=
struct
  type t = string
end
structure S 
=
struct
  open S0
end
(*
2011-08-29 katsu

This causes an unexpected name error.

084_provide.smi:3.10-3.21 Error:
  (name evaluation 137) Provide check fails (type definition) : S.t

*)

(*
2011-08-29 ohori

This should be an expected name error on the following
ground:

(1) 
interface: 
  structure S =
  struct
    eqtype t (= string)
  end

source: 
  _interface "..."
  structure S :> sig eqtype t end
  =
  struct
    type t = string
  end

(2) 
interface: 
  structure S =
  struct
    eqtype t (= string)
  end

source: 
  _interface "..."
  structure =
  struct
    type t = string
  end

(1) should name check, since its interface exactly specifies the source,
and, when required by other sources, produces the same environment as 
the result of evaluating the soruce. (2) does not have not this property 
so we should reject (2).

*)