Module Datatype


module Datatype: sig .. end
Datatype implementations and builders. Provide ways to implement signature Project.Datatype.OUTPUT without directly apply functor Project.Datatype.Register.
Consult the Plugin Development Guide for additional details.
module Unit: S  with type t = unit
module Int: S  with type t = int
module Bool: S  with type t = bool
module String: S  with type t = string
module BigInt: S  with type t = Big_int.big_int
module Formatter: S  with type t = Format.formatter
module OutChannel: S  with type t = Pervasives.out_channel
module InChannel: S  with type t = Pervasives.in_channel

Builders



References


module Ref: 
functor (Data : Project.Datatype.S) -> S with type t = Data.t ref
module Option: 
functor (Data : Project.Datatype.S) -> S with type t = Data.t option
module OptionRef: 
functor (Data : Project.Datatype.S) -> S with type t = Data.t option ref

Lists


module List: 
functor (Data : Project.Datatype.S) -> S with type t = Data.t list
Generic functor building a list of data.

Hashtables


module type HASHTBL = sig .. end
Sub-signature of Hashtbl.S.
module Make_Hashtbl: 
functor (H : HASHTBL) ->
functor (Data : Project.Datatype.S) -> S with type t = Data.t H.t
Must not be used if type H.key is equal to type Project.t

Sets


module type SET = sig .. end
Sub-signature of Set.S.
module Make_Set: 
functor (Set : SET) ->
functor (Data : S with type t = Set.elt) -> S with type t = Set.t
Generic functor building a set datatype.
module Make_SetRef: 
functor (Set : SET) ->
functor (Data : S with type t = Set.elt) -> S with type t = Set.t ref
Generic functor building a datatype for a reference on a set.
module Set: 
functor (Data : Project.Datatype.S) -> S with type t = Set.Make(Data).t
Functor building a set datatype.

Maps


module type MAP = sig .. end
Sub-signature of Map.S.
module Make_Map: 
functor (Map : MAP) ->
functor (Data : Project.Datatype.S) -> S with type t = Data.t Map.t
Generic functor building a map datatype.

Queues


module Queue: 
functor (Data : Project.Datatype.S) -> S with type t = Data.t Queue.t

Tuples


module Couple: 
functor (D1 : Project.Datatype.S) ->
functor (D2 : Project.Datatype.S) -> S with type t = D1.t * D2.t
module Triple: 
functor (D1 : Project.Datatype.S) ->
functor (D2 : Project.Datatype.S) ->
functor (D3 : Project.Datatype.S) -> S with type t = D1.t * D2.t * D3.t

Project


module Project: S  with type t = Project.t
Equivalent to Project.Datatype.Own.