1 (* Copyright (C) 1999-2005 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
4 * MLton is released under a BSD-style license.
5 * See the file MLton-LICENSE for details.
8 signature INTEGER_STRUCTS =
12 val * : int * int -> int
13 val + : int * int -> int
14 val - : int * int -> int
15 val < : int * int -> bool
16 val <= : int * int -> bool
17 val > : int * int -> bool
18 val >= : int * int -> bool
20 val compare: int * int -> order
21 val div: int * int -> int
22 val divMod: int * int -> int * int
23 val fmt: StringCvt.radix -> int -> string
24 val fromInt: Pervasive.Int.int -> int
25 val fromLarge: Pervasive.LargeInt.int -> int
26 val fromString: string -> int option
27 val max: int * int -> int
28 val maxInt: int option
29 val min: int * int -> int
30 val minInt: int option
31 val mod: int * int -> int
32 val precision: Pervasive.Int.int option
33 val quot: int * int -> int
34 val quotRem: int * int -> int * int
35 val rem: int * int -> int
36 val sameSign: int * int -> bool
37 val scan: StringCvt.radix
38 -> (char, 'a) StringCvt.reader
39 -> (int, 'a) StringCvt.reader
40 val sign: int -> Pervasive.Int.int
41 val toInt: int -> Pervasive.Int.int
42 val toIntInf: int -> Pervasive.IntInf.int
43 val toLarge: int -> Pervasive.LargeInt.int
44 val toString: int -> string
50 include EUCLIDEAN_RING
54 val <= : t * t -> bool
56 val >= : t * t -> bool
58 val choose: t * t -> t
59 val compare: t * t -> Relation.t
60 val exists: t * t * (t -> bool) -> bool
62 val fold: t * t * 'a * (t * 'a -> 'a) -> 'a
63 val foldDown: t * t * 'a * (t * 'a -> 'a) -> 'a
64 val for: t * t * (t -> unit) -> unit
65 val forall: t * t * (t -> bool) -> bool
66 val format: t * StringCvt.radix -> string
67 val forDown: t * t * (t -> unit) -> unit
68 val fromString: string -> t option
72 val isNegative: t -> bool
74 val isPositive: t -> bool
75 (* largest (i, f) is the largest j <= i such that f j *)
76 val largest: t * (t -> bool) -> t
77 val least: t * t * (t -> bool) -> t option
78 val map: t * t * (t -> 'a) -> 'a list
81 val output: t * Out.t -> unit
83 val quotRem: t * t -> t * t
85 val scan: (StringCvt.radix * (char, 'a) StringCvt.reader)
86 -> (t, 'a) StringCvt.reader
87 (* smallest (i, f) is the smallest j >= i such that f j *)
88 val smallest: t * (t -> bool) -> t
89 (* val sum: {from: t, to: t, term: t -> t} -> t *)
90 val toCommaString: t -> string
91 val toInt: t -> Pervasive.Int.int
92 val toIntInf: t -> Pervasive.IntInf.int
93 val toLarge: t -> Pervasive.LargeInt.int
94 val toString: t -> string