Module Kat.Ast

Expressions

type 'test bexp =
| True
| False
| Test of 'test
| Disj of 'test bexp * 'test bexp
| Conj of 'test bexp * 'test bexp
| Neg of 'test bexp

Boolean expressions over primitive tests 'test.

and ('act, 'test) exp =
| Assert of 'test bexp
| Action of 'act
| Union of ('act'test) exp * ('act'test) exp
| Seq of ('act'test) exp * ('act'test) exp
| Star of ('act'test) exp

KAT expressions over actions 'act and primitive tests 'test.

val sexp_of_bexp : ('test -> Ppx_sexp_conv_lib.Sexp.t) -> 'test bexp -> Ppx_sexp_conv_lib.Sexp.t
val sexp_of_exp : ('act -> Ppx_sexp_conv_lib.Sexp.t) -> ('test -> Ppx_sexp_conv_lib.Sexp.t) -> ('act'test) exp -> Ppx_sexp_conv_lib.Sexp.t
val bexp_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'test) -> Ppx_sexp_conv_lib.Sexp.t -> 'test bexp
val exp_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'act) -> (Ppx_sexp_conv_lib.Sexp.t -> 'test) -> Ppx_sexp_conv_lib.Sexp.t -> ('act'test) exp
val compare_bexp : ('test -> 'test -> int) -> 'test bexp -> 'test bexp -> int
val compare_exp : ('act -> 'act -> int) -> ('test -> 'test -> int) -> ('act'test) exp -> ('act'test) exp -> int
val equal_bexp : ('test -> 'test -> bool) -> 'test bexp -> 'test bexp -> bool
val equal_exp : ('act -> 'act -> bool) -> ('test -> 'test -> bool) -> ('act'test) exp -> ('act'test) exp -> bool
val hash_fold_bexp : (Ppx_hash_lib.Std.Hash.state -> 'test -> Ppx_hash_lib.Std.Hash.state) -> Ppx_hash_lib.Std.Hash.state -> 'test bexp -> Ppx_hash_lib.Std.Hash.state
val hash_fold_exp : (Ppx_hash_lib.Std.Hash.state -> 'act -> Ppx_hash_lib.Std.Hash.state) -> (Ppx_hash_lib.Std.Hash.state -> 'test -> Ppx_hash_lib.Std.Hash.state) -> Ppx_hash_lib.Std.Hash.state -> ('act'test) exp -> Ppx_hash_lib.Std.Hash.state
module Nary : sig ... end

N-ary expressions (modulo associativity).