Import Upstream version 20180207
[hcoop/debian/mlton.git] / mlton / atoms / atoms.sig
CommitLineData
7f918cf1
CE
1(* Copyright (C) 1999-2007 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9signature ATOMS_STRUCTS =
10 sig
11 end
12
13signature ATOMS' =
14 sig
15 include ATOMS_STRUCTS
16
17 structure AdmitsEquality: ADMITS_EQUALITY
18 structure CFunction: C_FUNCTION
19 structure CType: C_TYPE
20 structure CharSize: CHAR_SIZE
21 structure Con: CON
22 structure Const: CONST
23 structure Ffi: FFI
24 structure Field: FIELD
25 structure Func: FUNC
26 structure IntSize: INT_SIZE
27 structure Label: LABEL
28 structure Prim: PRIM
29 structure ProfileExp: PROFILE_EXP
30 structure ProfileLabel: PROFILE_LABEL
31 structure RealSize: REAL_SIZE
32 structure RealX: REAL_X
33 structure Record: RECORD
34 structure SortedRecord: RECORD
35 structure SourceInfo: SOURCE_INFO
36 structure Symbol: SYMBOL
37 structure Tycon: TYCON
38 structure TyconKind: TYCON_KIND
39 structure Tyvar: TYVAR
40 structure Var: VAR
41 structure WordSize: WORD_SIZE
42 structure WordX: WORD_X
43 structure WordXVector: WORD_X_VECTOR
44
45 sharing AdmitsEquality = Tycon.AdmitsEquality
46 sharing CFunction = Ffi.CFunction = Prim.CFunction
47 sharing CType = CFunction.CType = Ffi.CType = Prim.CType
48 sharing CharSize = Tycon.CharSize
49 sharing Con = Prim.Con
50 sharing Const = Prim.Const
51 sharing Field = Record.Field = SortedRecord.Field
52 sharing IntSize = Tycon.IntSize
53 sharing RealSize = CType.RealSize = Prim.RealSize = RealX.RealSize
54 = Tycon.RealSize
55 sharing RealX = Const.RealX
56 sharing SourceInfo = ProfileExp.SourceInfo
57 sharing TyconKind = Tycon.Kind
58 sharing WordSize = CType.WordSize = Prim.WordSize = Tycon.WordSize
59 = WordX.WordSize
60 sharing WordX = Const.WordX = WordXVector.WordX
61 sharing WordXVector = Const.WordXVector
62 end
63
64signature ATOMS =
65 sig
66 structure Atoms: ATOMS'
67
68 include ATOMS'
69
70 (* For each structure, like CFunction, I would like to write two sharing
71 * constraints
72 * sharing Atoms = CFunction
73 * sharing CFunction = Atoms.CFunction
74 * but I can't because of a bug in SML/NJ that reports "Sharing structure
75 * with a descendent substructure". So, I am forced to write out lots
76 * of individual sharing constraints. Blech.
77 *)
78 sharing AdmitsEquality = Atoms.AdmitsEquality
79 sharing CFunction = Atoms.CFunction
80 sharing CType = Atoms.CType
81 sharing CharSize = Atoms.CharSize
82 sharing Con = Atoms.Con
83 sharing Const = Atoms.Const
84 sharing Ffi = Atoms.Ffi
85 sharing Field = Atoms.Field
86 sharing Func = Atoms.Func
87 sharing IntSize = Atoms.IntSize
88 sharing Label = Atoms.Label
89 sharing Prim = Atoms.Prim
90 sharing ProfileExp = Atoms.ProfileExp
91 sharing ProfileLabel = Atoms.ProfileLabel
92 sharing RealSize = Atoms.RealSize
93 sharing RealX = Atoms.RealX
94 sharing Record = Atoms.Record
95 sharing SortedRecord = Atoms.SortedRecord
96 sharing SourceInfo = Atoms.SourceInfo
97 sharing Symbol = Atoms.Symbol
98 sharing Tycon = Atoms.Tycon
99 sharing TyconKind = Atoms.TyconKind
100 sharing Tyvar = Atoms.Tyvar
101 sharing Var = Atoms.Var
102 sharing WordSize = Atoms.WordSize
103 sharing WordX = Atoms.WordX
104 sharing WordXVector = Atoms.WordXVector
105 end