Module Std_extra

module Instances : sig ... end

Provides implementation for the common interface from Types for most of OCaml's standard librairy types, as well as functors to combine them (e.g. create a module FooBar : TYPE with type t = Foo.t Bar.t from a module Foo : TYPE and a module Bar ; UNARY_TYPE)

module Intify : sig ... end

Transform a type to int by assigning id's to elements

module PatriciaTree : sig ... end

Association maps from key to values, and sets, implemented with Patricia Trees, allowing fast merge operations by making use of physical equality between subtrees; and custom implementation of tree nodes (allowing normal maps, hash-consed maps, weak key or value maps, sets, custom maps, etc.)

module Types : sig ... end

Common types and modules types used throughout the rest of the code, provides a common interface for useful functions on all types (pretty-printer, equality, comparison) through the TYPE, UNARY_TYPE and BINARY_TYPE module types.

module Utils : sig ... end

Various utility functions and modules. Includes pretty-printer, extended Stdlib Sets and Maps, unicode characters and more.