aboutsummaryrefslogblamecommitdiffstats
path: root/lib/protocols/Program.mli
blob: 9cf44555ce968749065463e17b70d1c23a270aaf (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