Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / arrays-and-vectors / mono-vector.fun
CommitLineData
7f918cf1
CE
1(* Copyright (C) 2015 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
10functor MonoVector (type elem): MONO_VECTOR_EXTRA
11 where type elem = elem =
12 struct
13 open Vector
14 type array = elem array
15 type elem = elem
16 type vector = elem vector
17 val fromPoly = fn v => v
18 val toPoly = fn v => v
19 structure MonoVectorSlice =
20 struct
21 open VectorSlice
22 type elem = elem
23 type vector = vector
24 type slice = elem slice
25 val fromPoly = fn s => s
26 val toPoly = fn s => s
27 end
28 end
29
30functor EqtypeMonoVector (eqtype elem): EQTYPE_MONO_VECTOR_EXTRA
31 where type elem = elem =
32 struct
33 open Vector
34 type array = elem array
35 type elem = elem
36 type vector = elem vector
37 type vector_eqtype = vector
38 val fromPoly = fn v => v
39 val toPoly = fn v => v
40 structure MonoVectorSlice =
41 struct
42 open VectorSlice
43 type elem = elem
44 type vector = vector
45 type slice = elem slice
46 val fromPoly = fn s => s
47 val toPoly = fn s => s
48 end
49 end