Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / atoms / id.sig
CommitLineData
7f918cf1
CE
1(* Copyright (C) 2009,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
10signature ID_STRUCTS =
11 sig
12 val noname: string
13 end
14
15signature ID =
16 sig
17 include ID_STRUCTS
18
19 type t
20
21 val bogus: t
22 val clear: t -> unit
23 val clearPrintName: t -> unit
24 val equals: t * t -> bool
25 val layout: t -> Layout.t
26 val fromString: string -> t (* doesn't add uniquefying suffix *)
27 val hash: t -> word
28 val new: t -> t (* new id with the same originalName *)
29 val newNoname: unit -> t (* prefix is noname *)
30 val newString: string -> t (* new id with printName not set *)
31 val originalName: t -> string (* raw destructor *)
32 val plist: t -> PropertyList.t
33 val printNameAlphaNumeric: bool ref
34 val toString: t -> string
35 end