aboutsummaryrefslogtreecommitdiffstats
type t
type kind = ..

class type implementation = object
  method parse : string -> (kind, Concepts.Condition.condition) result

  method eval :
    kind -> Handle.t list -> 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 parse : t Handle.interface -> string -> (kind, Concepts.Condition.condition) result

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