Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / word.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 WORD =
10 sig
11 type t
12
13 val * : t * t -> t
14 val + : t * t -> t
15 val - : t * t -> t
16 val < : t * t -> bool
17 val << : t * word -> t
18 val <= : t * t -> bool
19 val > : t * t -> bool
20 val >= : t * t -> bool
21 val >> : t * word -> t
22 val ~ : t -> t
23 val ~>> : t * word -> t
24 val andb: t * t -> t
25 val compare: t * t -> order
26 val div: t * t -> t
27 val equals: t * t -> bool
28 val format: t * StringCvt.radix -> string
29 val fromChar: char -> t
30 val fromInt: int -> t
31 val fromIntInf: Pervasive.IntInf.int -> t
32 val fromLarge: Pervasive.LargeWord.word -> t
33 val fromWord: word -> t
34 val fromString: string -> t option
35 val layout: t -> Layout.t
36 val max: t * t -> t
37 val min: t * t -> t
38 val mod: t * t -> t
39 val notb: t -> t
40 val nthBitIsSet: t * int -> bool
41 val orb: t * t -> t
42 val toChar: t -> char
43 val toInt: t -> int
44 val toIntX: t -> int
45 val toIntInf: t -> Pervasive.IntInf.int
46 val toIntInfX: t -> Pervasive.IntInf.int
47 val toLarge: t -> Pervasive.LargeWord.word
48 val toLargeX: t -> Pervasive.LargeWord.word
49 val toWord: t -> word
50 val toWordX: t -> word
51 val toString: t -> string
52 val wordSize: int
53 val xorb: t * t -> t
54 end