# Module Ppx_deriving_runtime

    module Ppx_deriving_runtime: sig .. end

A module collecting all predefined OCaml types, exceptions and modules operating on them, so that ppx_deriving plugins operate in a well-defined environment.

## Predefined types

    module Predef: sig .. end

The `Ppx_deriving_runtime.Predef` module is necessary in absence of a `type nonrec` construct.

    type int = Ppx_deriving_runtime.Predef._int

    type char = Ppx_deriving_runtime.Predef._char

    type string = Ppx_deriving_runtime.Predef._string

    type float = Ppx_deriving_runtime.Predef._float

    type bool = Ppx_deriving_runtime.Predef._bool

    type unit = Ppx_deriving_runtime.Predef._unit

    type exn = Ppx_deriving_runtime.Predef._exn

    type 'a array = 'a Ppx_deriving_runtime.Predef._array

    type 'a list = 'a Ppx_deriving_runtime.Predef._list

    type 'a option = 'a Ppx_deriving_runtime.Predef._option =

`|` | `None`
`|` | `Some of `'a``

    type nativeint = Ppx_deriving_runtime.Predef._nativeint

    type int32 = Ppx_deriving_runtime.Predef._int32

    type int64 = Ppx_deriving_runtime.Predef._int64

    type 'a lazy_t = 'a Ppx_deriving_runtime.Predef._lazy_t

    type bytes = Ppx_deriving_runtime.Predef._bytes

## Predefined modules

### Operations on predefined types

    module Pervasives: module type of Pervasives  with
      type fpclass = Pervasives.fpclass and
      type in_channel = Pervasives.in_channel and
      type out_channel = Pervasives.out_channel and
      type open_flag = Pervasives.open_flag and
      type 'a ref = 'a Pervasives.ref and
      type ('a, 'b, 'c, 'd, 'e, 'f) format6 = ('a, 'b, 'c, 'd, 'e, 'f) Pervasives.format6 and
      type ('a, 'b, 'c, 'd) format4 = ('a, 'b, 'c, 'd) Pervasives.format4 and
      type ('a, 'b, 'c) format = ('a, 'b, 'c) Pervasives.format

    include Ppx_deriving_runtime.Pervasives

    module Char: module type of Char

    module String: module type of String

    module Printexc: module type of Printexc  with
      type raw_backtrace := Printexc.raw_backtrace and
      type backtrace_slot := Printexc.backtrace_slot and
      type location := Printexc.location

    module Array: module type of Array

    module List: module type of List

    module Nativeint: module type of Nativeint

    module Int32: module type of Int32

    module Int64: module type of Int64

    module Lazy: module type of Lazy

    module Bytes: module type of Bytes

### Data structures

    module Hashtbl: module type of Hashtbl  with
      type ('a, 'b) t := ('a, 'b) Hashtbl.t and
      type statistics := Hashtbl.statistics

    module Queue: module type of Queue  with
      type 'a t := 'a Queue.t

    module Stack: module type of Stack  with
      type 'a t := 'a Stack.t

    module Set: module type of Set

    module Map: module type of Map

    module Weak: module type of Weak  with
      type 'a t := 'a Weak.t

    module Buffer: module type of Buffer  with
      type t := Buffer.t

    module Result: sig .. end

### Formatting

    module Printf: module type of Printf

    module Format: module type of Format  with
      type formatter_out_functions := Format.formatter_out_functions and
      type formatter_tag_functions := Format.formatter_tag_functions and
      type formatter := Format.formatter