Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / buffer.sig
1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9 signature BUFFER_STRUCTS =
10 sig
11 end
12
13 signature BUFFER =
14 sig
15 include BUFFER_STRUCTS
16
17 type 'a t
18
19 val add: 'a t * 'a -> unit
20 val last: 'a t -> 'a option
21 val layout: ('a -> Layout.t) -> 'a t -> Layout.t
22 val length: 'a t -> int
23 val new: {dummy: 'a} -> 'a t
24 val reset: 'a t -> unit
25 val toVector: 'a t -> 'a vector
26 end