Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / atoms / atoms.fun
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
9functor Atoms (S: ATOMS_STRUCTS): ATOMS =
10struct
11
12structure Atoms =
13 struct
14 open S
15
16 structure CharSize = CharSize ()
17 structure IntSize = IntSize ()
18 structure RealSize = RealSize ()
19 structure WordSize = WordSize ()
20
21 structure WordX = WordX (structure WordSize = WordSize)
22 structure WordXVector = WordXVector (structure WordSize = WordSize
23 structure WordX = WordX)
24 structure RealX = RealX (structure RealSize = RealSize
25 structure WordX = WordX)
26 structure Const = Const (structure RealX = RealX
27 structure WordX = WordX
28 structure WordXVector = WordXVector)
29
30 structure Symbol = Symbol ()
31 structure Field = Field (structure Symbol = Symbol)
32 structure Record = Record (val isSorted = false
33 structure Field = Field)
34 structure SortedRecord = Record (val isSorted = true
35 structure Field = Field)
36
37 structure Tyvar = Tyvar ()
38 structure AdmitsEquality = AdmitsEquality ()
39 structure TyconKind = TyconKind ()
40 structure Tycon = Tycon (structure AdmitsEquality = AdmitsEquality
41 structure CharSize = CharSize
42 structure IntSize = IntSize
43 structure Kind = TyconKind
44 structure RealSize = RealSize
45 structure WordSize = WordSize)
46 structure Con = Con ()
47 structure Var = Var ()
48 structure Func =
49 struct
50 open Var
51 fun newNoname () = newString "F"
52 end
53 structure Label =
54 struct
55 open Func
56 fun newNoname () = newString "L"
57 end
58
59 structure CType = CType (structure RealSize = RealSize
60 structure WordSize = WordSize)
61 structure CFunction = CFunction (structure CType = CType)
62 structure Ffi = Ffi (structure CFunction = CFunction
63 structure CType = CType)
64
65 structure Prim = Prim (structure CFunction = CFunction
66 structure CType = CType
67 structure Con = Con
68 structure Const = Const
69 structure RealSize = RealSize
70 structure WordSize = WordSize)
71
72 structure SourceInfo = SourceInfo ()
73 structure ProfileLabel = ProfileLabel ()
74 structure ProfileExp = ProfileExp (structure SourceInfo = SourceInfo)
75 end
76
77open Atoms
78
79end