1(* -------------------------------------------------------------------------
2   Bitstring
3   ------------------------------------------------------------------------- *)
4
5signature Bitstring =
6sig
7   type bitstring = bool list
8
9   val compare: bitstring * bitstring -> order
10
11   val fromBool: bool -> bitstring
12   val fromInt: IntInf.int -> bitstring
13   val fromNativeInt: int -> bitstring
14   val fromNat: Nat.nat -> bitstring
15   val fromBinString: string -> bitstring option
16   val fromDecString: string -> bitstring option
17   val fromHexString: string -> bitstring option
18   val fromLit: string -> bitstring option
19
20   val toInt: bitstring -> IntInf.int
21   val toNativeInt: bitstring -> int
22   val toNat: bitstring -> Nat.nat
23   val toBinString: bitstring -> string
24   val toDecString: bitstring -> string
25   val toHexString: bitstring -> string
26
27   val toList: bitstring -> bool list
28   val fromList: bool list -> bitstring
29
30   val bitFieldInsert: Nat.nat * Nat.nat -> bitstring * bitstring -> bitstring
31
32   val zero: Nat.nat -> bitstring
33   val one: Nat.nat -> bitstring
34
35   val size: bitstring -> Nat.nat
36   val setSize: int -> bitstring -> bitstring
37
38   val replicate: bitstring * Nat.nat -> bitstring
39   val bits: Nat.nat * Nat.nat -> bitstring -> bitstring
40   val bit: bitstring * Nat.nat -> bool
41
42   val << : bitstring * Nat.nat -> bitstring
43   val #>> : bitstring * Nat.nat -> bitstring
44   val >>+ : bitstring * Nat.nat -> bitstring
45   val + : bitstring * bitstring -> bitstring
46   val || : bitstring * bitstring -> bitstring
47   val && : bitstring * bitstring -> bitstring
48   val ?? : bitstring * bitstring -> bitstring
49   val @@ : bitstring * bitstring -> bitstring
50end
51