Module Computation


module Computation: sig .. end
Internal state builders. Provide ways to implement signature Project.Computation.OUTPUT without directly apply functor Project.Computation.Register. Depending on the builder, also provide some additional useful information.
Consult the Plugin Development Guide for additional details.

Useful operations


val apply_once : string ->
Project.Computation.t list ->
(unit -> unit) -> (unit -> unit) * Project.Computation.t
apply_once name dep f returns a closure applying f only once and the state internally used. name and dep are respectively the name and the dependencies of the local state created by this function. Should be used partially applied. If f raises an exception, then it is considered as not applied.

Builders



References


module type REF_INPUT = sig .. end
Signature of the stored data.
module type REF_OUTPUT = sig .. end
Output signature of Ref.
module Ref: 
functor (Data : REF_INPUT) ->
functor (Info : Signature.NAME_DPDS) -> REF_OUTPUT with type data = Data.t
module type OPTION_REF_OUTPUT = sig .. end
Output signature of OptionRef.
module OptionRef: 
functor (Data : Project.Datatype.S) ->
functor (Info : Signature.NAME_DPDS) -> OPTION_REF_OUTPUT with type data = Data.t

Hashtables


module type HASHTBL = sig .. end
module type HASHTBL_OUTPUT = sig .. end
Output signature of builders of hashtables.
module Make_Hashtbl: 
functor (H : HASHTBL) ->
functor (Data : Project.Datatype.S) ->
functor (Info : Signature.NAME_SIZE_DPDS) -> HASHTBL_OUTPUT with type key = H.key and type data = Data.t
module Hashtbl: 
functor (Key : Hashtbl.HashedType) ->
functor (Data : Project.Datatype.S) ->
functor (Info : Signature.NAME_SIZE_DPDS) -> HASHTBL_OUTPUT with type key = Key.t and type data = Data.t

References on a set


module type SET = sig .. end
module type SET_REF_OUTPUT = sig .. end
Output signature of builders of references on a set.
module Make_SetRef: 
functor (Set : SET) ->
functor (Data : Project.Datatype.S with type t = Set.elt) ->
functor (Info : Signature.NAME_DPDS) -> SET_REF_OUTPUT with type elt = Data.t
module SetRef: 
functor (Data : Project.Datatype.S) ->
functor (Info : Signature.NAME_DPDS) -> SET_REF_OUTPUT with type elt = Data.t

Queue


module type QUEUE = sig .. end
module Queue: 
functor (Data : Project.Datatype.S) ->
functor (Info : Signature.NAME_DPDS) -> QUEUE with type elt = Data.t

Project itself


module Project: 
functor (Info : Signature.NAME_DPDS) -> REF_OUTPUT with type data = Project.t