Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / ast / longid.sig
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
9 signature LONGID_STRUCTS =
10 sig
11 structure Id: AST_ID
12 structure Strid: AST_ID
13 structure Symbol: SYMBOL
14 sharing Symbol = Id.Symbol = Strid.Symbol
15 end
16
17 signature LONGID =
18 sig
19 include LONGID_STRUCTS
20 include T
21
22 datatype node = T of {strids: Strid.t list,
23 id: Id.t}
24
25 include WRAPPED sharing type node' = node
26 sharing type obj = t
27
28 val fromSymbols: Symbol.t list * Region.t -> t
29 val long: Strid.t list * Id.t -> t
30 val short: Id.t -> t
31 val split: t -> Strid.t list * Id.t
32 val toString: t -> string
33 end