Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / util / abs-rep.fun
1 (* Copyright (C) 2008 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 functor MkAbsRep(type rep) :> ABS_REP where type Rep.t = rep =
9 struct
10 structure Rep = struct type t = rep end
11 type t = Rep.t
12 val arrayFromRep : rep array -> t array = fn x => x
13 val arrayToRep : t array -> rep array = fn x => x
14 val fromRep : rep -> t = fn x => x
15 val listFromRep : rep list -> t list = fn x => x
16 val listToRep : t list -> rep list = fn x => x
17 val toRep : t -> rep = fn x => x
18 val vectorFromRep : rep vector -> t vector = fn x => x
19 val vectorToRep : t vector -> rep vector = fn x => x
20 end
21
22 functor MkAbsRepEq(eqtype rep) :> ABS_REP_EQ where type Rep.t = rep =
23 struct
24 structure Rep = struct type t = rep end
25 type t = Rep.t
26 val arrayFromRep : rep array -> t array = fn x => x
27 val arrayToRep : t array -> rep array = fn x => x
28 val fromRep : rep -> t = fn x => x
29 val listFromRep : rep list -> t list = fn x => x
30 val listToRep : t list -> rep list = fn x => x
31 val toRep : t -> rep = fn x => x
32 val vectorFromRep : rep vector -> t vector = fn x => x
33 val vectorToRep : t vector -> rep vector = fn x => x
34 end