Import Debian changes 20180207-1
[hcoop/debian/mlton.git] / mlton / atoms / word-size.sig
1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 2004-2007 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_SIZE_STRUCTS =
10 sig
11 end
12
13 signature WORD_SIZE =
14 sig
15 include WORD_SIZE_STRUCTS
16
17 type t
18
19 val all: t list
20 val bits: t -> Bits.t
21 val bigIntInfWord: unit -> t
22 val bool: t
23 val bytes: t -> Bytes.t
24 val byte: t
25 val cardinality: t -> IntInf.t
26 val cint: unit -> t
27 val compare: t * t -> Relation.t
28 val compareRes: t
29 val cpointer: unit -> t
30 val cptrdiff: unit -> t
31 val csize: unit -> t
32 val equals: t * t -> bool
33 val fromBits: Bits.t -> t
34 val isInRange: t * IntInf.t * {signed: bool} -> bool
35 val max: t * {signed: bool} -> IntInf.t
36 val min: t * {signed: bool} -> IntInf.t
37 val memoize: (t -> 'a) -> t -> 'a
38 val objptr: unit -> t
39 val objptrHeader: unit -> t
40 datatype prim = W8 | W16 | W32 | W64
41 val prim: t -> prim
42 val prims: t list
43 val roundUpToPrim: t -> t
44 val seqIndex: unit -> t
45 val shiftArg: t
46 val smallIntInfWord: unit -> t
47 val toString: t -> string
48 val word8: t
49 val word16: t
50 val word32: t
51 val word64: t
52 end