Logtk_parsers.Ast_dkSourceinclude module type of struct include T end.
Simple terms, that are not hashconsed, nor typed.
Those do not use De Bruijn indices for variable binding, but simply names (scoping is done later). Their simplicity make them good for heavy AST transformations, output of parsing, etc.
Terms are only compared, hashsed, etc. by their "term" component (the algebraic variant). Additional fields (location…) are ignored for almost every operation.
and view = Logtk.STerm.view = | Var of varvariable
*)| Const of stringconstant
*)| AppBuiltin of Logtk.Builtin.t * t list| App of t * t listapply term
*)| Ite of t * t * t| Match of t * match_branch list| Let of (var * t) list * t| Bind of Logtk.Binder.t * typed_var list * tbind n variables
*)| List of t listspecial constructor for lists
*)| Record of (string * t) list * var optionextensible record
*)Bind all free vars with the symbol
include Logtk.Interfaces.PRINT with type t := tmerge a b merges a into b, but favors b in case of conflict