1 (* Copyright (C
) 2010 Matthew Fluet
.
2 * Copyright (C
) 1999-2007 Henry Cejtin
, Matthew Fluet
, Suresh
3 * Jagannathan
, and Stephen Weeks
.
5 * MLton is released under a BSD
-style license
.
6 * See the file MLton
-LICENSE for details
.
9 signature CHOOSE_INTN_ARG
=
13 val fInt16
: Int16
.int t
14 val fInt32
: Int32
.int t
15 val fInt64
: Int64
.int t
18 functor ChooseIntN_Int8 (A
: CHOOSE_INTN_ARG
) :
19 sig val f
: Int8
.int A
.t
end =
20 struct val f
= A
.fInt8
val _
= A
.fInt16
val _
= A
.fInt32
val _
= A
.fInt64
end
21 functor ChooseIntN_Int16 (A
: CHOOSE_INTN_ARG
) :
22 sig val f
: Int16
.int A
.t
end =
23 struct val _
= A
.fInt8
val f
= A
.fInt16
val _
= A
.fInt32
val _
= A
.fInt64
end
24 functor ChooseIntN_Int32 (A
: CHOOSE_INTN_ARG
) :
25 sig val f
: Int32
.int A
.t
end =
26 struct val _
= A
.fInt8
val _
= A
.fInt16
val f
= A
.fInt32
val _
= A
.fInt64
end
27 functor ChooseIntN_Int64 (A
: CHOOSE_INTN_ARG
) :
28 sig val f
: Int64
.int A
.t
end =
29 struct val _
= A
.fInt8
val _
= A
.fInt16
val _
= A
.fInt32
val f
= A
.fInt64
end
31 signature CHOOSE_INT_ARG
=
35 val fInt16
: Int16
.int t
36 val fInt32
: Int32
.int t
37 val fInt64
: Int64
.int t
38 val fIntInf
: IntInf
.int t
41 functor ChooseInt_Int8 (A
: CHOOSE_INT_ARG
) :
42 sig val f
: Int8
.int A
.t
end =
43 struct val f
= A
.fInt8
val _
= A
.fInt16
val _
= A
.fInt32
val _
= A
.fInt64
val _
= A
.fIntInf
end
44 functor ChooseInt_Int16 (A
: CHOOSE_INT_ARG
) :
45 sig val f
: Int16
.int A
.t
end =
46 struct val _
= A
.fInt8
val f
= A
.fInt16
val _
= A
.fInt32
val _
= A
.fInt64
val _
= A
.fIntInf
end
47 functor ChooseInt_Int32 (A
: CHOOSE_INT_ARG
) :
48 sig val f
: Int32
.int A
.t
end =
49 struct val _
= A
.fInt8
val _
= A
.fInt16
val f
= A
.fInt32
val _
= A
.fInt64
val _
= A
.fIntInf
end
50 functor ChooseInt_Int64 (A
: CHOOSE_INT_ARG
) :
51 sig val f
: Int64
.int A
.t
end =
52 struct val _
= A
.fInt8
val _
= A
.fInt16
val _
= A
.fInt32
val f
= A
.fInt64
val _
= A
.fIntInf
end
53 functor ChooseInt_IntInf (A
: CHOOSE_INT_ARG
) :
54 sig val f
: IntInf
.int A
.t
end =
55 struct val _
= A
.fInt8
val _
= A
.fInt16
val _
= A
.fInt32
val _
= A
.fInt64
val f
= A
.fIntInf
end