aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols/Program.mli
blob: 9cf44555ce968749065463e17b70d1c23a270aaf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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