package checked_oint
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Module type Checked_oint.SingletonSource
A single integer of an arbitrary type.
This module is useful for typed manipulation of an integer value, which can belong to any integer type. A first-class instance of this module can be obtained by calling singleton with a generic integer.
include S with type t := t
The number of bits of this integer type.
Whether this integer type is signed or not.
Constructs a value out of int; returns None on overflow/underflow.
Constructs a value out of string; returns None on overflow/underflow.
We allow the following classes of non-negative integers:
- Binary:
0b(0B) followed by a non-empty sequence of binary digits0and1. - Octal:
0o(0O) followed by a non-empty sequence of octal digits0, ...,7. - Decimal: a non-empty sequence of decimal digits
0, ...,9. - Hexadecimal:
0x(0X) followed by a non-empty sequence of decimal digits0, ...,9and lettersa, ...,f(A, ...,F).
A negative integer is described by the - character followed by a well-formed non-negative integer.
All other combinations of characters will return None.
Performs left shifting; returns None on overflow/underflow.
Performs right shifting; returns None on overflow/underflow.
This is a logical shift for unsigned integer types and arithmetic shift for signed integer types.
Same as of_int but raises Out_of_range instead of returning None.
Same as of_string but raises Out_of_range instead of returning None.
Finds a successor; raises Out_of_range on overflow.
Finds a predecessor; raises Out_of_range on underflow.
Performs unary negation; raises Out_of_range on overflow/underflow.
Finds an absolute value; raises Out_of_range on overflow.
Performs addition; raises Out_of_range on overflow/underflow.
Performs subtraction; raises Out_of_range on overflow/underflow.
Performs multiplication; raises Out_of_range on overflow/underflow.
Performs division; raises Out_of_range on overflow/underflow.
Finds a remainder; raises Out_of_range on overflow/underflow.
Performs left shifting; raises Out_of_range on overflow/underflow.
Performs right shifting; raises Out_of_range on overflow/underflow.
This is a logical shift for unsigned integer types and arithmetic shift for signed integer types.
Constructs a value out of generic; returns None on overflow/underflow.
Same as of_generic but raises Out_of_range instead of returning None.