package datalog

  1. Overview
  2. Docs
type t = private
  1. | Var of int
  2. | Apply of const * t array
val mk_var : int -> t
val mk_const : const -> t
val mk_apply : const -> t array -> t
val mk_apply_l : const -> t list -> t
val is_var : t -> bool
val is_apply : t -> bool
val is_const : t -> bool
val eq : t -> t -> bool
val hash : t -> int
val ground : t -> bool
val vars : t -> int list
val max_var : t -> int

max var, or 0 if ground

val head_symbol : t -> const
val to_string : t -> string
val pp : out_channel -> t -> unit
val fmt : Format.formatter -> t -> unit
val pp_tuple : out_channel -> t list -> unit
module Tbl : Hashtbl.S with type key = t