Module Syntax_tree

type ar1_format = {
  1. prefix : string;
  2. suffix : string;
}
type ar2_format = {
  1. prefix : string;
  2. middle : string;
  3. suffix : string;
}
type ar3_format = {
  1. prefix : string;
  2. middle1 : string;
  3. middle2 : string;
  4. suffix : string;
}
type expr =
  1. | Ar0 of {
    1. s : string;
    }
  2. | Ar1 of {
    1. format : ar1_format;
    2. arg : expr;
    }
  3. | Ar2 of {
    1. format : ar2_format;
    2. arg1 : expr;
    3. arg2 : expr;
    }
  4. | Ar3 of {
    1. format : ar3_format;
    2. arg1 : expr;
    3. arg2 : expr;
    4. arg3 : expr;
    }
  5. | Ite of {
    1. cond : expr;
    2. then_expr : expr;
    3. else_expr : expr;
    }
val arity : expr -> int
val equal_expr : expr -> expr -> bool
type expr_path = int list
val string_of_expr : expr -> string
val hashcons : expr -> expr
module Location_identifier : sig ... end
type 'a located = 'a * 'a Location_identifier.t