# Module OpamClient

    module OpamClient: sig .. end

Client entry-point.

    module API: sig .. end

OPAM API.

    val global_lock : (unit -> unit) -> unit

Call an unsafe function while taking the global lock.

    val switch_lock : (unit -> unit) -> unit

Call an unsafe function while taking the current switch lock.

    val read_lock : (unit -> unit) -> unit

Call an unsafe function while checking that no lock is already held.

    val with_switch_backup : string -> (OpamState.state -> unit) -> unit

Loads state with `command`, and calls `f` on it. The loaded state is backed up, and in case of error, a message is displayed on how to revert.

    module SafeAPI: module type of API

This version of the API can be used concurrently.