sig
  type t =
      Atom of Pos.t * string * string option
    | List of Pos.t * Type_with_layout.Make.S.t_or_comment list * Pos.t
  and t_or_comment =
      Sexp of Type_with_layout.Make.S.t
    | Comment of Type_with_layout.Make.S.comment
  and comment =
      Plain_comment of Pos.t * string
    | Sexp_comment of Pos.t * Type_with_layout.Make.S.comment list *
        Type_with_layout.Make.S.t
  val sexp_of_t : Type_with_layout.Make.S.t -> Type.t
  val sexp_of_comment : Type_with_layout.Make.S.comment -> Type.t
  val sexp_of_t_or_comment : Type_with_layout.Make.S.t_or_comment -> Type.t
end