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







                                    
                                                                          
     
 

                                                  
                                                                                           
   
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