Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / array2.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 ARRAY2 =
10 sig
11 type 'a t
12
13 val copy: 'a t -> 'a t
14 val equals: 'a t * 'a t * ('a * 'a -> bool) -> bool
15 val forall: 'a t * ('a -> bool) -> bool
16 val foreach: 'a t * ('a -> unit) -> unit
17 val foreachi: 'a t * (int * int * 'a -> unit) -> unit
18 val fromList: 'a list list -> 'a t
19 val layout: ('a -> Layout.t) -> 'a t -> Layout.t
20 val nCols: 'a t -> int
21 val nRows: 'a t -> int
22 val new: int * int * 'a -> 'a t
23 val sub: 'a t * int * int -> 'a
24 val tabulate: int * int * (int * int -> 'a) -> 'a t
25 val update: 'a t * int * int * 'a -> unit
26 end