Module Printer

module Printer: sig .. end
Print functions for many of the data types outlined in the Ast module. These functions are intended to ease debugging.

val debug : bool
The debug flag is used to enable all of the debug_print statements that appear throughout the codebase.
val debug_print : string -> unit
debug_print is used to print a string based on the value of the debug flag. If debug is true, then the string is printed, otherwise it is not.
val show_binop : ('a -> string) -> 'a * 'a -> string -> string
show_binop is used to print out expressions involving binary operators. show_binop to_string (x,y) op converts the values x and y to strings and then the operator string is placed in between each of the values. The string that is printed is "x op y".
val opstring_of_binop : Ast.binary_op -> string
opstring_of_binop op takes a binary operator and returns the string representation of that operator.
val opstring_of_unop : Ast.unary_op -> string
opstring_of_unop op takes a unary operator and returns the string representation of that operator.
val expr_to_string : Ast.expr -> Ast.id
expr_to_string e prints the canonical string representation of a given 3110Caml expression.
val pattern_to_string : Ast.pattern -> Ast.id
pattern_to_string p prints the canonical string representation of a given 3110Caml pattern.
val string_of_list : Ast.expr -> Ast.id
string_of_list lst returns the string representation of the 3110Caml list, lst. This function raises an exception when called on expressions which are not lists.
val const_to_string : Ast.constant -> Ast.id
const_to_string returns the string representation of a 3110Caml constant. Raises an exception when called on other types of expressions.
val type_to_string : Ast.typ -> string
type_to_string returns the canonical string representation of a 3110Caml type.
val apattern_to_string : Ast.apattern -> Ast.id
apattern_to_string returns the canonical string representation of an annotated 3110Caml pattern.
val aexpr_to_string : Ast.aexpr -> string
aexpr_to_string returns the canonical string representation of an annotated 3110Caml expression.
val val_to_string : Ast.value -> string
val_to_string returns the canonical string representation of a 3110Caml value.
val constr_to_string : Ast.constr -> string
constr_to_string prints out the canonical string representation of a constraint for unification.
val constraints_to_string : Ast.constr list -> string
constraints_to_string prints a list of constraints.
val subst_to_string : Ast.substitution -> string
subst_to_string prints out the canonical string representation of a substitution.
val print : ('a -> string) -> 'a -> unit
print to_string value prints to_string value to standard output.
val print_list : ('a -> string) -> 'a list -> unit
print_list to_string values prints each of the values in values on a new line to standard output.
val print_type : Ast.typ -> unit
print_type t prints the type t to standard output.
val print_val : Ast.value -> unit
print_val v prints the value v to standard output.
val print_constraint : Ast.constr -> unit
print_constraint c prints the constraint c to standard output.
val print_substitution : Ast.substitution -> unit
print_substitution s prints the substitution s to standard output.