Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / elaborate / elaborate-core.sig
1 (* Copyright (C) 2009,2012,2017 Matthew Fluet.
2 * Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 * Copyright (C) 1997-2000 NEC Research Institute.
5 *
6 * MLton is released under a BSD-style license.
7 * See the file MLton-LICENSE for details.
8 *)
9
10 signature ELABORATE_CORE_STRUCTS =
11 sig
12 structure Ast: AST
13 structure CoreML: CORE_ML
14 structure Decs: DECS
15 structure Env: ELABORATE_ENV
16 sharing Ast = Env.Ast
17 sharing CoreML = Decs.CoreML = Env.CoreML
18 sharing Decs = Env.Decs
19 end
20
21 signature ELABORATE_CORE =
22 sig
23 include ELABORATE_CORE_STRUCTS
24
25 (* Elaborate dec in env, returning Core ML decs. *)
26 val elaborateDec: Ast.Dec.t * {env: Env.t, nest: string list} -> Decs.t
27 val reportSequenceNonUnit: unit -> unit
28 val reportUndeterminedTypes: unit -> unit
29 val reportUnresolvedFlexRecords: unit -> unit
30 val resolveOverloads: unit -> unit
31 end