integers

Various signed and unsigned integer types for OCaml
README

The ocaml-integers library provides a number of 8-, 16-, 32- and 64-bit signed and unsigned integer types, together with aliases such as long and size_t whose sizes depend on the host platform.

Features

  • The interfaces follow the pattern of the signatures of the Int32, Int64, and Nativeint modules in the OCaml standard library.

    The behaviour also follows the standard library; for example, conversions such as of_int truncate, and operations are "modulo" in general:

    # Unsigned.UInt8.(pred zero);;
    - : Unsigned.UInt8.t = <uint8 255>
    
  • Top-level printers for each type are included

    # Unsigned.UInt32.[of_int 103; one; of_string "1000"];; 
    - : Unsigned.UInt32.t list = [<uint32 103>; <uint32 1>; <uint32 1000>]
    
  • Infix operators are available:

    # Unsigned.UInt32.(Infix.(one + one));;
    - : Unsigned.UInt32.t = <uint32 2>
    
  • Polymorphic operations such as comparison behave correctly:

    # open Unsigned.UInt32
    # zero < one;;
    - : bool = true
    # max_int < zero;;
    - : bool = false
    
  • Integers 32 bits and above are boxed; integers below 32 bits are unboxed.

    # Obj.(tag (repr Unsigned.UInt32.zero));;
    - : int = 255
    # Obj.(tag (repr Unsigned.UInt16.zero));;
    - : int = 1000
    

API documentation

Install
Published
20 Dec 2016
Maintainers
Sources
integers-0.2.2.tbz
md5=ae226532930965fe0b43c02f2469cadc
Dependencies
topkg
build
ocamlbuild
build & != "0.9.0"
ocaml
< "5.0"
Reverse Dependencies