aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols/Program.mli
blob: 6cdffd898061e2949f29520613b1d31f1ef07dea (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
module type PROGRAM = sig
  type t
end

module Make (P : PROGRAM) : sig
  type t

  class type implementation = object
    method invoke : P.t -> (Handle.t, Concepts.Condition.condition) result
  end

  val make : #implementation -> Handle.protocol
  val from : Handle.t -> t Handle.interface option
  val invoke : t Handle.interface -> P.t -> (Handle.t, Concepts.Condition.condition) result
end