# Module Topkg.Private.Ipc

    module Ipc: sig .. end

Topkg interprocess communication.

## Interprocess communication

    type 'a t

The type for interpocess communication transfering values of type `'a`.

    val cmd : 'a t -> Topkg.Cmd.t

`cmd ipc` are the command line arguments provided to the child process.

    val codec : 'a t -> 'a Topkg.Private.Codec.t

`codec ipc` is the codec used to transfer the value.

    val answer : 'a t -> Topkg.fpath

`answer ipc` is the file path from which the value can be decoded from.

## Requests

    val pkg : unit -> Topkg.Private.Pkg.t t

`pkg ()` is an IPC to get the package description.

    val lint_custom : unit -> Topkg.R.msg Topkg.result list option t

`lint_custom ()` is an IPC to run the custom linting.

    val distrib_prepare : dist_build_dir:Topkg.fpath ->
           name:string ->
           version:string ->
           opam:Topkg.fpath ->
           opam_adds:string -> Topkg.fpath list Topkg.result t

`distrib_prepare dist_build_dir name version opam` is an IPC to prepare a distribution in directory `dist_build_dir`. This sets the cwd to `dist_build_dir`, performs the distribution watermarking process with `name` used for ``Name`, `version` used for ``Version` and `opam` as the default file for opam watermarks. It then performs distribution massaging and returns the file paths to exclude from the distribution archive.