type 'a or_var = 'a Locus.or_var
val sexp_of_or_var : ('a -> Sexplib0.Sexp.t) -> 'a or_var -> Sexplib0.Sexp.t
val or_var_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a or_var
val or_var_to_yojson : ('a -> Yojson.Safe.t) -> 'a or_var -> Yojson.Safe.t
val or_var_of_yojson :
(Yojson.Safe.t -> 'a Ppx_deriving_yojson_runtime.error_or) ->
Yojson.Safe.t ->
'a or_var Ppx_deriving_yojson_runtime.error_or
val hash_fold_or_var :
(Ppx_hash_lib.Std.Hash.state -> 'a -> Ppx_hash_lib.Std.Hash.state) ->
Ppx_hash_lib.Std.Hash.state ->
'a or_var ->
Ppx_hash_lib.Std.Hash.state
val compare_or_var : ('a -> 'a -> int) -> 'a or_var -> 'a or_var -> int
type 'a occurrences_gen = 'a Locus.occurrences_gen
val occurrences_gen_of_sexp :
(Sexplib.Sexp.t -> 'a) ->
Sexplib.Sexp.t ->
'a occurrences_gen
val sexp_of_occurrences_gen :
('a -> Sexplib.Sexp.t) ->
'a occurrences_gen ->
Sexplib.Sexp.t
type occurrences_expr = Locus.occurrences_expr
type 'a with_occurrences = 'a Locus.with_occurrences
val sexp_of_with_occurrences :
('a -> Sexplib0.Sexp.t) ->
'a with_occurrences ->
Sexplib0.Sexp.t
val with_occurrences_of_sexp :
(Sexplib0.Sexp.t -> 'a) ->
Sexplib0.Sexp.t ->
'a with_occurrences
val with_occurrences_to_yojson :
('a -> Yojson.Safe.t) ->
'a with_occurrences ->
Yojson.Safe.t
val with_occurrences_of_yojson :
(Yojson.Safe.t -> 'a Ppx_deriving_yojson_runtime.error_or) ->
Yojson.Safe.t ->
'a with_occurrences Ppx_deriving_yojson_runtime.error_or
val hash_fold_with_occurrences :
(Ppx_hash_lib.Std.Hash.state -> 'a -> Ppx_hash_lib.Std.Hash.state) ->
Ppx_hash_lib.Std.Hash.state ->
'a with_occurrences ->
Ppx_hash_lib.Std.Hash.state
type occurrences = Locus.occurrences
val occurrences_of_sexp : Sexplib.Sexp.t -> occurrences
val sexp_of_occurrences : occurrences -> Sexplib.Sexp.t
type hyp_location_flag = Locus.hyp_location_flag
val hash_fold_hyp_location_flag :
Ppx_hash_lib.Std.Hash.state ->
hyp_location_flag ->
Ppx_hash_lib.Std.Hash.state
type 'a hyp_location_expr = 'a Locus.hyp_location_expr
val hyp_location_expr_of_sexp :
(Sexplib.Sexp.t -> 'a) ->
Sexplib.Sexp.t ->
'a hyp_location_expr
val sexp_of_hyp_location_expr :
('a -> Sexplib.Sexp.t) ->
'a hyp_location_expr ->
Sexplib.Sexp.t
type 'id clause_expr = 'id Locus.clause_expr
val sexp_of_clause_expr :
('id -> Sexplib0.Sexp.t) ->
'id clause_expr ->
Sexplib0.Sexp.t
val clause_expr_of_sexp :
(Sexplib0.Sexp.t -> 'id) ->
Sexplib0.Sexp.t ->
'id clause_expr
val clause_expr_to_yojson :
('id -> Yojson.Safe.t) ->
'id clause_expr ->
Yojson.Safe.t
val clause_expr_of_yojson :
(Yojson.Safe.t -> 'id Ppx_deriving_yojson_runtime.error_or) ->
Yojson.Safe.t ->
'id clause_expr Ppx_deriving_yojson_runtime.error_or
val hash_fold_clause_expr :
(Ppx_hash_lib.Std.Hash.state -> 'id -> Ppx_hash_lib.Std.Hash.state) ->
Ppx_hash_lib.Std.Hash.state ->
'id clause_expr ->
Ppx_hash_lib.Std.Hash.state
type clause = Locus.clause
val clause_of_sexp : Sexplib.Sexp.t -> clause
val sexp_of_clause : clause -> Sexplib.Sexp.t
type clause_atom = Locus.clause_atom
val clause_atom_of_sexp : Sexplib.Sexp.t -> clause_atom
val sexp_of_clause_atom : clause_atom -> Sexplib.Sexp.t
type concrete_clause = Locus.concrete_clause
type hyp_location = Locus.hyp_location
val hyp_location_of_yojson :
Yojson.Safe.t ->
hyp_location Ppx_deriving_yojson_runtime.error_or
val hash_fold_hyp_location :
Ppx_hash_lib.Std.Hash.state ->
hyp_location ->
Ppx_hash_lib.Std.Hash.state
val hash_hyp_location : hyp_location -> Ppx_hash_lib.Std.Hash.hash_value
type goal_location = Locus.goal_location
type simple_clause = Locus.simple_clause
type 'id or_like_first = 'id Locus.or_like_first
val or_like_first_of_sexp :
(Sexplib.Sexp.t -> 'id) ->
Sexplib.Sexp.t ->
'id or_like_first
val sexp_of_or_like_first :
('id -> Sexplib.Sexp.t) ->
'id or_like_first ->
Sexplib.Sexp.t