aboutsummaryrefslogtreecommitdiffstats
path: root/lib/protocols/Evaluator.mli
blob: 04b36124163ddbcf7a0687cbbf3b0d1a99b36cb1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type t

(** [within] is the directory the program's paths resolve against: the
    branch state a stored program was read through, or whatever part of
    the tree a caller hands over. *)
class type implementation = object
  method invoke : Handle.t -> within:Handle.t -> (Handle.t, Concepts.Condition.condition) result
end

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

val invoke :
  t Handle.interface ->
  Handle.t ->
  within:Handle.t ->
  (Handle.t, Concepts.Condition.condition) result