functor (Atom : SExprAtom->
  sig
    type atom = Atom.t
    type t = Atom of atom | List of t list
    val pp_print_sexpr : Format.formatter -> t -> unit
    val pp_print_sexpr_list : Format.formatter -> t list -> unit
    val print_sexpr : t -> unit
    val pp_print_sexpr_indent : int -> Format.formatter -> t -> unit
    val pp_print_sexpr_indent_compact : int -> Format.formatter -> t -> unit
    val string_of_sexpr : t -> string
  end