aboutsummaryrefslogblamecommitdiffstats
path: root/lib/protocols/Program.mli
blob: 1d6c3ae990c9b5b6a06343f794819240837283b9 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13












                                                     
 





                                                  


                                                   
module type PROGRAM = sig
  type t
end

module Make (P : PROGRAM) : sig
  type t

  class type implementation = object
    method invoke :
      program:P.t ->
      Context.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 ->
    program:P.t ->
    Context.t ->
    (Handle.t, Concepts.Condition.condition) result
end