Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / pointer.sig
1 (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 *
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
6 *)
7
8 signature POINTER =
9 sig
10 type 'a t
11
12 val ! : 'a t -> 'a
13 val := : 'a t * 'a -> unit
14
15 val clear: 'a t -> unit
16 val copy: 'a t * 'a t -> unit
17 val eq: 'a t * 'a t -> bool
18 val equals: 'a t * 'a t * ('a * 'a -> bool) -> bool
19 val follow: 'a t -> 'a option
20 val isNull: 'a t -> bool
21 val make: 'a option -> 'a t
22 val null: unit -> 'a t
23 val new: 'a -> 'a t
24 val swap: 'a t * 'a t -> unit
25 end