Module LogtkTypedPrologTerm.Visitor

module Visitor: sig .. end

type 'a t = {
   var : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location -> ?ty:'a -> string -> 'a
;
   bvar : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location -> ?ty:'a -> string -> 'a
;
   app : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location -> ?ty:'a -> 'a -> 'a list -> 'a
;
   const : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location -> ?ty:'a -> LogtkSymbol.t -> 'a
;
   bind : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location ->
?ty:'a -> LogtkSymbol.t -> 'a -> 'a -> 'a
;
   multiset : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location -> ?ty:'a -> 'a list -> 'a
;
   record : LogtkTypedPrologTerm.term ->
?loc:LogtkTypedPrologTerm.location ->
?ty:'a -> (string * 'a) list -> 'a option -> 'a
;
}
Fold-like operation that maps a term into a value of type 'a
val apply : visitor:'a t -> LogtkTypedPrologTerm.term -> 'a
val id : LogtkTypedPrologTerm.term t
val for_all : bool t