1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 2004-2008 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 WORD_X_STRUCTS =
11 structure WordSize: WORD_SIZE
16 include WORD_X_STRUCTS
18 (* Words of all WordSize.t sizes. *)
22 val allOnes: WordSize.t -> t
24 val compare: t * t * {signed: bool} -> order
25 val div: t * t * {signed: bool} -> t
26 val equals: t * t -> bool
27 val fromChar: char -> t (* returns a word of size 8 *)
28 val fromIntInf: IntInf.t * WordSize.t -> t
29 val ge: t * t * {signed: bool} -> bool
30 val gt: t * t * {signed: bool} -> bool
32 val isAllOnes: t -> bool
34 val isMax: t * {signed: bool} -> bool
35 val isMin: t * {signed: bool} -> bool
36 val isNegOne: t -> bool
38 val layout: t -> Layout.t
39 val le: t * t * {signed: bool} -> bool
40 val lshift: t * t -> t
41 val lt: t * t * {signed: bool} -> bool
42 val max: WordSize.t * {signed: bool} -> t
43 val min: WordSize.t * {signed: bool} -> t
44 val mod: t * t * {signed: bool} -> t
45 val mul: t * t * {signed: bool} -> t
48 val one: WordSize.t -> t
50 val quot: t * t * {signed: bool} -> t
51 val rem: t * t * {signed: bool} -> t
52 val resize: t * WordSize.t -> t
53 val resizeX: t * WordSize.t -> t
56 val rshift : t * t * {signed: bool} -> t
57 val size: t -> WordSize.t
61 val toIntInf: t -> IntInf.t
62 val toIntInfX: t -> IntInf.t
63 val toString: t -> string
65 val zero: WordSize.t -> t